Chúng tôi có một phiên bản chạy trên TeamCity và chứa một số dự án thử nghiệm khác nhau. Họ từng chạy một sau khi khác, và chúng tôi đang sử dụng MSTest.exe từ một Rakefile để dàn xếp mọi thứ, thusly:Làm cách nào để tôi trả về MSTest.exe 0 ngay cả khi thử nghiệm không thành công?
desc 'Run Unit Tests'
mstest :data_test => [:build_database_tests] do |mstest|
puts build_header("Data Tests")
mstest.command = msTestCommand
mstest.parameters = [
"/resultsfile:dTest.trx",
"/detail:errormessage",
"/detail:description",
"/usestderr"
]
mstest.assemblies "../../../Database/DataTests/bin/Release/DataTests.dll"
end
này tạo ra một tập tin TRX tốt đẹp mà TeamCity có thể phân tích cú pháp và tất cả mọi thứ, làm cho một đẹp báo cáo sạch tab. Tuy nhiên, MSTest.exe trả về 1 nếu thử nghiệm không thành công, trong đó rake giải thích là lỗi, và làm cho phần còn lại của các thử nghiệm không được chạy.
Chúng tôi muốn ngăn chặn hành vi này; chúng tôi muốn xây dựng để tiếp tục chạy khi kiểm tra thất bại để chúng tôi có thể xem những gì các xét nghiệm khác cũng có thể thất bại. Làm thế nào chúng ta có thể nhận được Rake để bỏ qua mã trả về, và/hoặc gây ra MSTest.exe không phát ra một mã trả về thất bại nếu một kiểm tra thất bại?
Bạn có nói rằng, nếu 1 thử nghiệm trong tập hợp này ('data_test') không thành công, nó dừng chạy thử nghiệm được xác định bởi tác vụ này? Tôi không nghĩ rằng mstest chạy như thế. Hoặc, bạn đang nói rằng nếu 'data_test' thất bại, thì một nhiệm vụ kiểm thử khác không chạy? –
Sau đó. Sau khi data_test tôi có thể muốn chạy sql_test và mstest trả về một nonzero hủy bỏ rakefile. – GWLlosa