Jon
Jon

Reputation:

Getting MSTest output to show in CruiseControl.Net

I currently have our build server set up with CruiseControl.Net running a build using MSBuild and then running unit tests using MSTest. The problem is I can't see the output of the unit tests in CC - I know they are being run because I can get the build to fail if I commit a failing test.

I have followed the online guides from http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspx and http://www.softwarepassion.com/?p=89 but still having no luck.

My ccnet.config file contains

    <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> 

The log file in C:\Program Files\CruiseControl.NET\server\Checkin Build\Artifacts\buildlogs contains the unit test results, have I missed any steps?

Upvotes: 5

Views: 7492

Answers (3)

Katleen
Katleen

Reputation: 11

For the Dashboard, I think you need to add the MSTest Summary in the xlsFiles, but add the MSTest Report build report plugin. That is,

  <buildReportBuildPlugin>
    <xslFileNames>
      <xslFile>xsl\MsTestSummary2008.xsl</xslFile>
    </xslFileNames>
  </buildReportBuildPlugin>
  <xslReportBuildPlugin description="MSTest Report" actionName="MSTESTReport" xslFileName="xsl\MsTestReport2008.xsl" />
</buildPlugins>

I tried adding MSTestReport on both but it didn't work, but the setting above did. Hope that helps...

Upvotes: 1

Dinesh Manne
Dinesh Manne

Reputation: 1932

i made the following changes to get MSTest results output to be shown in CruiseControl.NET

1) For Dashboard - in dashboard.config added a reference to the Mstest 2008 xsl file under buildReportBuildPlugin

<xslFile>xsl\MsTestReport2008.xsl</xslFile>

2) For email - in ccservice.exe.config added the reference to the same xsl file under xslFiles section

<file name="xsl\MsTestSummary2008.xsl"/>

Upvotes: 3

Alex
Alex

Reputation: 13229

Did you configure your web dashboard with the correct xsl to format the outputs? There are two different versions of the XSL's (Summary and Report) for VSTS 2005 and 2008 as Microsoft changed the XML output drastically between the two versions. The changes were very good, just breaking changes.

Upvotes: 1

Related Questions