2016-01-15 14 views
5

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?

+0

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? –

+0

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

Trả lời

2

MSTest tự nó sẽ thực thi TẤT CẢ các bộ thử nghiệm, ngay cả khi bộ thử trước đó bị lỗi. Vấn đề của bạn là với cách diễn giải của Rake. Hầu hết, nếu không phải tất cả, hãy xây dựng ngôn ngữ (ANT, MSBuild, Gradle, v.v.) có lỗi "Tiếp tục lỗi" như hành vi.

Làm một tìm kiếm Google nhanh chóng cho "cào tiếp tục báo lỗi" Tôi tìm thấy một vài liên kết:

http://www.rake.build/fascicles/004-ignore-failed-tasks.html Continue Rake after failure

Các ý chính cơ bản tôi nhận được rằng bạn có thể sử dụng sh để lặp qua một loạt các nhiệm vụ và bỏ qua các lỗi thất bại để TẤT CẢ các tác vụ thực thi.

Các vấn đề liên quan