获取MSTest输出以显示在CruiseControl.Net中

时间:2009-07-30 23:38:01

标签: cruisecontrol.net mstest

我目前使用CruiseControl.Net设置我们的构建服务器,使用MSBuild运行构建,然后使用MSTest运行单元测试。问题是我无法在CC中看到单元测试的输出 - 我知道它们正在运行,因为如果我提交失败的测试,我可以使构建失败。

我已关注http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspxhttp://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中的日志文件包含单元测试结果,我是否错过了任何步骤?

3 个答案:

答案 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,但它不起作用,但上面的设置确实如此。希望有所帮助...