У нас есть сборка, которая работает в TeamCity и содержит несколько разных тестовых проектов. Каждый из них запускается один за другим, и мы используем MSTest.exe из Rakefile, чтобы все организовать, таким образом:
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
Это создает хороший файл TRX, который TeamCity может анализировать, и все остальное, что создает хорошую чистую вкладку отчета. Однако MSTest.exe возвращает 1, если тест не прошел, что rake интерпретирует как сбой и приводит к тому, что остальные тесты не запускаются.
Мы хотели бы подавить такое поведение; мы хотим, чтобы сборка продолжалась после сбоя теста, чтобы мы могли видеть, какие другие тесты также могут завершиться ошибкой. Как мы можем заставить Rake игнорировать код возврата и / или заставить MSTest.exe не выдавать неверный код возврата в случае неудачного теста?
data_test
) завершится неудачно, он остановит выполнение теста, определенного этой задачей? Я не думал, что mstest работает так. Или вы говорите, что еслиdata_test
не удается, то еще одна тестовая задача не запускается? - person Anthony Mastrean   schedule 19.01.2016