Торт: Как получить результат от MSpec
Я пытался написать сценарий торта для моего CI. Я новичок в торте. В рамках этого скрипта я хотел выполнить тесты MSpec.
Task("Run-Tests")
.IsDependentOn("Build")
.Does(() => {
var configurationIntoTests = configuration + "/*.Tests.dll";
MSpec("../src/ERP.BusniessLogic.Tests/bin" + configurationIntoTests);
MSpec("../src/ERP.DapperDataAccess.Tests/bin" + configurationIntoTests);
MSpec("../src/ERP.DomainModel.Tests/bin" + configurationIntoTests);
MSpec("../src/ERP.Shared.Tests/bin" + configurationIntoTests);
MSpec("../src/ERP.Web.Tests/bin" + configurationIntoTests);
});
Я предполагал, что он выдаст консольный вывод, как MSBuild, поскольку он не имеет возвращаемого значения. См API
Как вы можете ожидать, консольного вывода нет, а это значит, что я не знаю, каков результат теста.
Как я могу получить этот результат, чтобы сообщить об этом моему CI?
1 ответ
Решение
Использование перегрузки MSpec(string, MSpecSettings) позволит вам указать тип отчета, его имя и место для его размещения с помощью класса MSpecSettings.
MSpec("../src/Progresso.ERP.BusniessLogic.Tests/bin/" + configurationIntoTests,
new MSpecSettings {
ReportName = "Progresso.ERP.BusniessLogic.Tests",
HtmlReport = true,
OutputDirectory = "./build"
});
Обновить
Изучая ваш пример кода, я замечаю /
отсутствует до конфигурации
var configurationIntoTests = configuration + "/*.Tests.dll";
должно быть
var configurationIntoTests = "/" + configuration + "/*.Tests.dll";
Иначе bin/Debug/
становится binDebug
и тестовый глоббер не найдет никаких сборок, а MSPec даже не будет выполнен.