我一直想写这篇文章作为指南并开发一个插件,但我还没有开始。我知道这个问题很老,但我敢肯定那里的其他人也想要同样的东西,所以就在这里。
在 Hudson 上的项目配置中:
执行 Windows 批处理命令
SET MSTest="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"
SET XSLParser="C:\MsBuildNunit\msxsl.exe"
SET TestDLL=path-to-your-test-projects.dll
SET TestOutFILE=TestResults\some-unique-filename.trx
SET TransformedOutputFile=%TestOutFILE:.trx=%.xml
SET XSLFile=c:\MsBuildNunit\MSBuild-to-NUnit.xslt
MKDIR TestResults
%MSTest% "/testcontainer:%TestDLL%" /nologo /resultsfile:%TestOutFILE%
%XSLParser% %TestOutFILE% %XSLFile% -o %TransformedOutputFile%
SET ERRORLEVEL=0
然后选中“发布 NUnit 测试结果报告”框并为“测试报告 XMLs”输入
TestResults/*.xml
C:\MsBuildNunit 中有一个 XSLT 以及来自 Microsoft 的 msxsl.exe。
您可以从此处下载 MSBuild-to-NUnit.xslt 并从此处从 microsoft 获取 msxsl.exe, 或者您可以在此处获取包含 xslt 和 exe的MsBuildNunit 文件夹的压缩副本
运行时,它调用 MSTest.exe 运行测试并以 microsofts trx (xml) 格式输出格式。然后它使用 xslt 和 trx 调用 msxsl.exe 并将其转换为 nunits xml 格式。在构建结束时,Hudson 将其作为任何其他 Nunit 测试结果进行选择,您就可以开始了。
编辑添加:我忘了提到,有了这个 xslt,我们得到了完整的测试结果。我们有多个测试项目和多个 dll,我们可以通过趋势图、按名称查看测试、查看测试状态以及如果出错我们会收到错误消息以及堆栈跟踪来获得很好的反馈。基本上几乎所有你能用 Nunit 得到的东西。
编辑(再次):我刚刚在转换中添加了测试持续时间,所以它现在会显示在 Hudson 中!似乎对我们的测试很有用。
编辑:我尝试了新的 MSTest 插件,它目前不支持解析多个 TRX 文件,只有 1 个,所以如果你像我们一样并且有多个必须通过 MSTest 运行的测试程序集,那么目前这是你唯一的解决方案。