Đã xem this question đã và ít nhiều phản ánh cách tôi hiện đang chạy toàn bộ suite của mình.Làm thế nào để chạy một bộ MiniTest đầy đủ mà không có Rake?
Thêm vào đó, tôi đã thiết lập các nhiệm vụ cào sau:
Rake::TestTask.new do |t|
t.name = "spec:models"
t.libs << "test"
t.pattern = "spec/models/*_spec.rb"
end
Nhưng tôi nhận thấy khi tôi chạy này bằng time rake spec:models
, mà nó hoàn thành trong khoảng 2,36 giây. Nếu tôi chạy tất cả các bài kiểm tra cá nhân trong thư mục đó bằng cách sử dụng ruby /path/to/spec.rb
(tất cả được phân lập từ ActiveRecord hiện tại - không tồn tại, vì vậy siêu nhanh), tổng thời gian tích lũy của người dùng là 2,36 giây, nhưng tôi cũng nhận thấy trong khi mỗi tệp mất 0,4 số giây của người dùng thực thi từ đầu đến cuối, thời gian "thử nghiệm" thực tế được báo cáo bởi MiniTest là nhanh hơn nhiều (chẳng hạn như toàn bộ bộ phần mềm của tôi, sau khi tải depencies, sẽ được thực hiện trong ít hơn 0,15 giây, không phải 2,36 giây).
Ví dụ (đối với một file spec):
Started
11/11: 100% |======================================| Time: 00:00:00
Finished in 0.02223s
11 tests, 15 assertions, 0 failures, 0 errors, 0 skips
ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total
Tôi nghi ngờ rằng Rake được tải lại thư viện giữa việc thực hiện mỗi bài kiểm tra, và đó là chiếm thời gian thêm. Có anyway tôi có thể xác minh điều này, hoặc chạy toàn bộ bộ phần mềm của tôi mà không sử dụng Rake?
Btw, khi tôi nói "thời gian người sử dụng" trước đó, tôi đề cập đến số đầu tiên outputted bởi prepending time
lệnh ruby của tôi để chạy một tập tin thử nghiệm duy nhất, vì vậy time ruby /path/to/spec.rb
= ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total
Bạn đã bao giờ tìm được giải pháp cho điều này chưa? –