Cake:如何从 MSpec 获取结果

Cake: How to get result from 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 那样提供控制台输出,因为它没有 return 值。 See API

如您所料,没有控制台输出,这意味着我不知道测试结果是什么。

我怎样才能得到这个结果并将其报告给我的ci?

使用 MSpec(string, MSpecSettings) overload will let you set what kind of report, it's name and where to put it using the MSpecSettings class.

 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,测试 globber 将找不到任何程序集,甚至不会执行 MSPec。