使用Cake将NUnit结果导入TeamCity

4

我正在使用Cake作为构建脚本,TeamCity用于CI。 我让Cake运行使用NUnit编写的单元测试,然后TeamCity使用“xml报告处理器”获取这些结果。

正如您所看到的,它正在导入文件,但是“测试”选项卡已经丢失了,因此我无法查看测试输出。
我是否错过了一步?
4个回答

2

这是一个与nunit-console有关的问题。我将其降级到3.2.1版本,现在它可以正常工作了。


感谢您回报这个问题。也许值得更新原始问题并标记为已接受的答案。 - Gary Ewan Park

2

我的测试蛋糕任务只是这样,测试报告选项卡会出现

NUnit3(testsDir.ToString() + "/*Tests.dll", new NUnit3Settings
{
    NoResults = true,
    NoHeader = true,
    Framework = "net-4.0",
    Workers = 5,
    Timeout = 10000
});

您真的需要报告xml吗?

这是依赖于 NUnit 内置的能力来检测它是否在 TeamCity 上运行,并提供正确的服务消息以上传测试结果,对吗? - Gary Ewan Park
2
对于版本大于3.4的情况,您需要添加 #tool "nuget:?package=NUnit.Extension.TeamCityEventListener" https://github.com/nunit/docs/issues/78 - Lukas Pirkl

1
看起来你的测试没有正确执行(与执行失败的测试相反)。尝试在本地运行构建,然后检查TestResult.xml文件的内容。
如果那看起来不错,请更改TC上的项目设置以将xml文件保存为artifact,并将其与成功的本地运行进行比较。
最后,请确保TC配置中的XML报告类型设置为NUnit。
希望这可以帮助你, 马克

谢谢Mark。不幸的是,这个测试有意失败了,以尝试引入一个失败的测试来查看在出现问题时生成的报告。 我可以确认TestResult.xml看起来很好,并符合我的预期。 但它仍然无法工作。 - Andrew Davis

0

当Teamcity 9.X无法加载nunit 3 xml因为旧版本的teamcity报告解析器构建功能不理解该格式时,我遇到了类似的问题。

通过将nunit结果转换为xunit xslt链接!并将文件导入为junit结果,我使其正常工作。

Task("Run-Unit-Tests")  
.Does(() =>
{
    DotNetCoreTest("./Project");        
}).Finally(() =>
{  
    XmlTransform("./nunit3-xunit.xslt", "./TestResult.xml", "./NUnit.WebApp.FunctionnalTests.TestResult.xml");
    if(TeamCity​.IsRunningOnTeamCity)
    {       
        TeamCity.ImportData("junit","./NUnit.WebApp.FunctionnalTests.TestResult.xml");
    }  
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接