当前位置:  开发笔记 > 编程语言 > 正文

将Hudson与MS Test集成?

如何解决《将Hudson与MSTest集成?》经验,为你挑选了2个好方法。

是否可以将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集成?



1> Allen Rice..:

我一直想写这个作为指导并开发一个插件,但我还没有找到它.我知道这个问题已经过时了,但我确定其他人想要同样的事情,所以在这里.

在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运行.



2> galuvian..:

Hudson有一个新的MSTest插件.只需指定.trx文件的位置,即可完成工作.如果插件使用Allen的解决方案,我不会感到惊讶.


您不需要提交trx文件.只需配置插件即可知道测试完成后的位置.如果trx尚不存在,您可能会在第一次配置时收到警告.
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有