整合哈德森与MS测试?

是否有可能将Hudson与MS Test整合?

我正在使用Hudson在我的开发机器上设置一个较小的CI服务器,这样我就可以获得一些统计信息(即.FxCop和编译器警告)。 当然,如果它可以运行我的单元测试并显示它们的输出,它也会很好。

到目前为止,我已将以下批处理任务添加到Hudson,这使得它可以正确运行测试。

"%PROGRAMFILES%Microsoft Visual Studio 9.0Common7IDEMSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:TestsbinDebugTests.dll

不过,据我所知,哈德森还不支持分析MS测试结果。 有谁知道MSTest.exe生成的TRX文件是否可以转换为JUnit或NUnit结果格式(因为这些格式是Hudson支持的),还是有任何其他方法可以将MS Test单元测试与Hudson集成?


哈德森有一个MSTest的新插件。 只需指定.trx文件的位置即可完成工作。 如果插件使用了艾伦的解决方案,这并不会让我感到惊讶。


我一直有意将此作为指导编写,并开发一个插件,但我没有得到解决。 我知道这个问题很老,但我确信有人在那里想要同样的东西,所以现在就是这样。

在Hudson的项目配置中:

执行Windows批处理命令


SET MSTest="C:Program FilesMicrosoft Visual Studio 9.0Common7IDEMSTest.exe"
SET XSLParser="C:MsBuildNunitmsxsl.exe"

SET TestDLL=path-to-your-test-projects.dll
SET TestOutFILE=TestResultssome-unique-filename.trx
SET TransformedOutputFile=%TestOutFILE:.trx=%.xml
SET XSLFile=c:MsBuildNunitMSBuild-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运行。


我已经能够使用“hangy”命令行的变体,并且MSTest插件能够成功运行和分析/发布测试用例。 我做出的最大改变是为mstest.exe指定输出文件,并在MSTest插件前面使用该文件(不允许使用通配符...必须是实际文件名)。 例如,以下是我的自定义生成步骤:

"%PROGRAMFILES%Microsoft Visual Studio 9.0Common7IDEMSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:MyProject1.Test/bin/Debug/MyProject1.Test.dll  /testcontainer: MyProject2.Test/bin/Debug/MyProject2.Test.dll /resultsfile:TestResultsHudsonJobTestResults.trx

退出0

请注意,“结果文件”与作业的工作空间有关。 因此,要解析的MSTest插件的结果文件是:

TestResultsHudsonJobTestResults.trx

就是这样!

链接地址: http://www.djcxy.com/p/50741.html

上一篇: Integrating Hudson with MS Test?

下一篇: How might I integrate phpunit with Hudson CI?