我已经搜索了一段时间,并且第一次无法在这里找到答案。
我有一个包含多个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
我是否有更好的方法来运行这些以便记录所有测试结果?
谢谢!
答案 0 :(得分:4)
想出来。对于遇到这个问题的人来说非常简单,你只需要将两个(或多个)程序集放在同一个命令中,如下所示:
nunit-console.exe MyFirstProject.UnitTests/bin/Debug/MyFirstProject.UnitTests.dll MySecondProject.UnitTests/bin/Debug/MySecondProject.UnitTests.dll
现在我所有的测试结果都显示出来了!
答案 1 :(得分:2)
作为此类问题的其他任何人的补充:
要从同一个程序集中运行两组测试中的一个报告,请定义两个Windows Batch Command构建步骤,每个步骤都有自己的类别和结果文件:
"%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的问题。