是否可以将Hudson与MS Test 集成?
我正在使用Hudson在我的开发机器上设置一个较小的CI服务器,这样我就可以得到一些统计信息(即FxCop和编译器警告).当然,如果它可以运行我的单元测试并显示其输出也会很好.
到目前为止,我已将以下批处理任务添加到Hudson中,这使得它可以正确运行测试.
"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll
但是,据我所知,Hudson不支持分析MS测试结果.有谁知道生成的TRX文件是否MSTest.exe
可以转换为JUnit或NUnit结果格式(因为Hudson支持这些格式),或者是否有其他方法将MS Test单元测试与Hudson集成?
我一直想写这个作为指导并开发一个插件,但我还没有找到它.我知道这个问题已经过时了,但我确定其他人想要同样的事情,所以在这里.
在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测试结果报告"框,并输入"测试报告XML"
TestResults/*.xml
C:\ MsBuildNunit中有一个XSLT,以及来自Microsoft的msxsl.exe.
您可以从下载的MSBuild到NUnit.xslt 这里,并从微软获得MSXSL.EXE 这里或者你可以得到我的MsBuildNunit文件夹的压缩副本包含XSLT和exe文件在这里
运行时,它调用运行测试的MSTest.exe并以microsofts trx(xml)格式输出格式.然后它使用xslt和trx调用msxsl.exe并将其转换为nunits xml格式.在构建结束时,Hudson会像任何其他Nunit测试结果那样选择它并且你很高兴.
编辑补充:我忘了提及,有了这个xslt,我们得到了完整的测试结果.我们有多个测试项目和多个dll,我们获得了很好的反馈,能够使用趋势图,按名称查看测试,查看测试的状态,如果出现错误,我们会得到错误消息以及堆栈跟踪.基本上几乎所有你会得到Nunit的东西.
编辑(再次):我刚刚在变换中添加了测试持续时间,现在它将显示在Hudson中!似乎对我们的测试很有用.
编辑:我尝试了新的MSTest插件,它目前不支持解析多个TRX文件,只有1,所以目前这是你唯一的解决方案,如果你像我们一样,有多个测试程序集,你必须通过MSTest运行.
Hudson有一个新的MSTest插件.只需指定.trx文件的位置,即可完成工作.如果插件使用Allen的解决方案,我不会感到惊讶.