我目前使用CruiseControl.Net设置我们的构建服务器,使用MSBuild运行构建,然后使用MSTest运行单元测试。问题是我无法在CC中看到单元测试的输出 - 我知道它们正在运行,因为如果我提交失败的测试,我可以使构建失败。
我已关注http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspx和http://www.softwarepassion.com/?p=89的在线指南,但仍然没有运气。
我的ccnet.config文件包含
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\CCBuilds</workingDirectory>
<projectFile>Application.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
<targets>Build</targets>
<timeout>900</timeout>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
<exec>
<executable>deleteTestLog.bat</executable>
<baseDirectory>C:\CCBuilds</baseDirectory>
<buildArgs></buildArgs>
<buildTimeoutSeconds>30</buildTimeoutSeconds>
</exec>
<exec>
<executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
<baseDirectory>C:\CCBuilds</baseDirectory>
<buildArgs>/testcontainer:UnitTests\bin\Debug\UnitTests.dll /runconfig:localtestrun.Testrunconfig /resultsfile:testResults.trx</buildArgs>
<buildTimeoutSeconds>30</buildTimeoutSeconds>
</exec>
</tasks>
<publishers>
<merge>
<files>
<file>testResults.trx</file>
</files>
</merge>
<xmllogger logDir="C:\Program Files\CruiseControl.NET\server\Checkin Build\Artifacts\buildlogs" />
</publishers>
C:\ Program Files \ CruiseControl.NET \ server \ Checkin Build \ Artifacts \ buildlogs中的日志文件包含单元测试结果,我是否错过了任何步骤?
答案 0 :(得分:3)
我做了以下更改,以便在CruiseControl.NET中显示MSTest结果输出
1)对于仪表板 - 在dashboard.config中添加了对buildReportBuildPlugin下的Mstest 2008 xsl文件的引用
<xslFile>xsl\MsTestReport2008.xsl</xslFile>
2)对于电子邮件 - 在ccservice.exe.config中添加了对xslFiles部分下相同xsl文件的引用
<file name="xsl\MsTestSummary2008.xsl"/>
答案 1 :(得分:1)
您是否使用正确的xsl配置网络信息中心以格式化输出?由于Microsoft在两个版本之间彻底改变了XML输出,因此VSTS 2005和2008有两种不同版本的XSL(摘要和报告)。这些变化非常好,只是打破了变化。
答案 2 :(得分:1)
对于仪表板,我认为您需要在xlsFiles中添加MSTest 摘要,但添加MSTest 报告构建报告插件。也就是说,
<buildReportBuildPlugin> <xslFileNames> <xslFile>xsl\MsTestSummary2008.xsl</xslFile> </xslFileNames> </buildReportBuildPlugin> <xslReportBuildPlugin description="MSTest Report" actionName="MSTESTReport" xslFileName="xsl\MsTestReport2008.xsl" /> </buildPlugins>
我尝试在两者上添加MSTestReport,但它不起作用,但上面的设置确实如此。希望有所帮助...