3

我已经搜索了一段时间,但第一次在这里找不到答案。

我有一个包含多个 C# 项目的解决方案。其中两个项目是单元测试项目。我正在使用 Jenkins 构建此解决方案,尝试运行所有单元测试,然后将其打包用于内部 NuGet 服务器。

我遇到的问题是我一个接一个地为一个单元测试项目运行测试,我认为这导致第二组测试将其结果保存在第一组之上,因为我可以在控制台输出中看到两组测试的测试运行并通过,但是 Jenkins 中的测试结果仅显示第二组测试。

我使用 nunit-console 使用 Windows 批处理命令运行这些命令,如下所示:

nunit-console.exe MyFirstProject.UnitTests/bin/Debug/MyFirstProject.UnitTests.dll
nunit-console.exe MySecondProject.UnitTests/bin/Debug/MySecondProject.UnitTests.dll

有没有更好的方法可以运行这些以记录所有测试结果?

谢谢!

4

2 回答 2

4

弄清楚了。对于遇到这种情况的任何人来说,这很简单,您只需将两个(或多个)程序集放在同一个命令中,如下所示:

nunit-console.exe MyFirstProject.UnitTests/bin/Debug/MyFirstProject.UnitTests.dll MySecondProject.UnitTests/bin/Debug/MySecondProject.UnitTests.dll

现在我所有的测试结果都显示出来了!

于 2014-04-16T17:57:46.337 回答
2

作为遇到此类问题的任何其他人的补充:
要从同一程序集运行的两组测试中获取一份报告,请定义两个 Windows 批处理命令构建步骤,每个步骤都有自己的类别和结果文件:

"%nunit%\nunit-console.exe" "%WORKSPACE%\MyTests.sln" /include:TestCategory1 /xml=nunit-result1.xml  

"%nunit%\nunit-console.exe" "%WORKSPACE%\MyTests.sln" /include:TestCategory2 /xml=nunit-result2.xml 

添加 Post Build 操作以发布 NUnit 测试结果报告并将 XML 文件名定义为 *.xml。

Nunit 插件会将不同的测试结果连接成一个可以查看和通过电子邮件发送的结果。

这种方式也将解决OP的问题。

于 2014-06-19T14:27:06.960 回答