Tôi biết. Điều này không được khuyến khích. Vì những lý do tôi không tham gia, tôi cần chạy các bài kiểm tra theo thứ tự được viết. Theo tài liệu, nếu lớp kiểm tra của tôi (chúng tôi sẽ gọi nó là TestClass) mở rộng Minitest :: Unit :: TestCase, thì tôi có thể gọi phương thức công khai i_suck_and_my_tests_are_order_dependent!
(Gee - bạn có nghĩ rằng người tạo ra Minitest có ý kiến về điều đó?). Ngoài ra, còn có tùy chọn gọi một phương thức có tên là test_order
và chỉ định :alpha
để ghi đè hành vi mặc định của :random
. Không ai trong số này đang làm việc cho tôi.Làm thế nào để tôi có hiệu quả buộc Minitest chạy thử nghiệm của tôi theo thứ tự?
Dưới đây là một ví dụ:
class TestClass < Minitest::Unit::TestCase
#override random test run ordering
i_suck_and_my_tests_are_order_dependent!
def setup
...setup code
end
def teardown
...teardown code
end
def test_1
test_1 code....
assert(stuff to assert here, etc...)
puts 'test_1'
end
def test_2
test_2_code
assert(stuff to assert here, etc...)
puts 'test_2'
end
end
Khi tôi chạy này, tôi nhận được:
undefined method `i_suck_and_my_tests_are_order_dependent!' for TestClass:Class (NoMethodError)
Nếu tôi thay lời gọi i_suck
phương pháp với một phương pháp ở trên cùng a la:
def test_order
:alpha
end
Thử nghiệm của tôi chạy, nhưng tôi có thể nói từ puts
cho mỗi phương pháp mà mọi thứ vẫn còn đoàn kết theo thứ tự ngẫu nhiên mỗi lần tôi chạy thử nghiệm.
Có ai biết tôi đang làm gì sai không? Cảm ơn.
Đồng ý; không sử dụng minitest cài sẵn. Sử dụng đá quý. – naomik
n.b. tên này đã được đổi tên thành https://github.com/seattlerb/minitest/pull/400 –
Aww. Tôi yêu cái tên đó. –