使用Nunit和Specflow报告生成Cake构建

时间:2018-03-21 08:03:44

标签: c# report specflow nunit-3.0 cakebuild

目前在Selenium + SpecFlow的项目中,Nunit测试开始使用 cake build v0.23.0 。需要使用NUnit结果.xml文件创建可以生成的SpecFlow报告。 Build将在TeamCity上执行。以下是我在构建蛋糕中的步骤:

/*Task("RunTests")
.IsDependentOn("Build")
.Does(() => {
    NUnit3("./SampleProject/bin/Release/SampleProject.dll", new NUnit3Settings {
                NoResults = true,
                        Where = "cat == PricingAppTests",
                        Process = NUnit3ProcessOption.InProcess
            });


});*/

Task("RunTests")
    .IsDependentOn("Build")
.Does(() => {
    SpecFlowTestExecutionReport(tool => {
    tool.NUnit3("./SampleProject/bin/Release/SampleProject.dll",
        new NUnit3Settings {
            Results = "testresults.xml",
            Format = "nunit2",
            Labels = NUnit3Labels.All,
            OutputFile = "testoutput.txt"
        });
    }, project,
    new SpecFlowTestExecutionReportSettings {
        Out = "report.html"
    });
});

第一部分(注释) - 这是在蛋糕配置中执行测试的当前工作步骤。 第二 - 这是我尝试创建SpecFlow报告的地方,以显示可理解的结果。这部分我从这个question开始。当我尝试执行此配置时,我在控制台中遇到这种错误:

Compiling build script...
  

错误:编译构建脚本时发生错误:   C:/work/dcom-test-suite/build.cake(67,21):错误CS0117:   'NUnit3Result'不包含'ResultFormat'的定义       C:/work/dcom-test-suite/build.cake(68,21):错误CS0117:'NUnit3Result'不包含'标签'的定义       C:/work/dcom-test-suite/build.cake(69,21):错误CS0117:'NUnit3Result'不包含'OutputFile'的定义

任何人都可以帮我解决这个问题吗? 提前谢谢。

1 个答案:

答案 0 :(得分:4)

Cake 0.22.0中引入了一个关于celery worker -A tasks -l info -P eventlet 的重大更改,这些更改尚未在您提供的链接中更新。有关详细信息,请参阅https://github.com/cake-build/cake/pull/1666

您的代码现在看起来应该是这样的:

NUnit3Settings