将nunit结果导入团队城市蛋糕

问题描述:

我使用Cake作为构建脚本和TeamCity for CI。 我正在用NUnit运行Cake运行单元测试,然后TeamCity使用'xml报告处理器'来提取这些结果。将nunit结果导入团队城市蛋糕

正如你可以看到它的导入文件,但“测试”标签丢失,所以我不能看到测试输出。

我错过了一个步骤吗?

正是有了NUnit控制台的问题。我降级到3.2.1,现在它可以工作。

+0

感谢您报告这一个。用这个解决方案更新原始问题或将其标记为接受的答案可能是值得的。 –

测试我的蛋糕任务是仅此测试报告选项卡出现

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

你真的需要报告的XML?

+0

这是依靠NUnit内置的能力来检测它是否在TeamCity上运行并提供正确的服务消息来上传测试结果,对不对?确实如此, –

+1

。因为我的需要绰绰有余 – pitermarx

+0

这对我不起作用。 –

它在我看来像你的测试未能正确执行(而不是正确执行失败的测试)。尝试在本地运行构建,然后检查TestResult.xml文件的内容。

如果看起来不错,更改TC上的项目设置以将xml文件保存为工件,并将您在那里看到的内容与本地成功运行进行比较。

最后,确保TC配置中的XML报告类型设置为NUnit。

希望这有助于 马克

+0

感谢那个Mark。不幸的是,测试故意失败尝试我介绍了一个失败的测试,看看是否有问题时生成的报告。 我可以确认TestResult.xml看起来不错,符合我的预期。 我还是不想工作 –

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

我得到它由NUnit的结果转换为工作的xUnitlink to the 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"); 
    } 
});