蛋糕:如何从MSpec获得结果

时间:2019-01-07 12:41:35

标签: continuous-integration cakebuild

我试图为我的词写一个蛋糕脚本。我是新来的蛋糕。 作为此脚本的一部分,我想执行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一样提供控制台输出,因为它没有返回值。 See API

您可能会期望没有控制台输出,这意味着我不知道测试结果是什么。

我如何获得该结果以将其报告给我的ci?

1 个答案:

答案 0 :(得分:3)

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