views:

15

answers:

1

Hey,

I'm using CruiseControl.NET to run visual studio test cases after my project builds. In the raw xml log I can see it running the test cases and saying which passed and which failed, however on the CruiseControl dashboard all it says is:

9 Projects built with no warnings at all :-) Juchuu !!!

Here's what my project block looks like:

<project name="projectname" queue="queuename" queuePriority="2">
    <workingDirectory>C:\Build</workingDirectory>
    <category>categoryname</category>
    <webURL>http://myurl/ViewProjectReport.aspx&lt;/webURL&gt;
    <triggers>
      <intervalTrigger seconds="60" />
    </triggers>
    <modificationDelaySeconds>60</modificationDelaySeconds>
    &sc;
    <tasks>
      <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
        <workingDirectory>C:\mypath</workingDirectory>
        <projectFile>project.sln</projectFile>
        <buildArgs>/v:quiet /noconlog /p:Configuration=Debug</buildArgs>
        <targets>Build</targets>
        <timeout>900</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCnet.dll</logger>
      </msbuild>
      <exec>
        <executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
        <baseDirectory>C:\Build\Test\TestCases\</baseDirectory>
        <buildArgs>/testcontainer:testproject\bin\debug\testproject.dll /runconfig:localtestrun.Testrunconfig</buildArgs>
        <buildTimeoutSeconds>900</buildTimeoutSeconds>
      </exec>
    </tasks>
    <publishers>
      <xmllogger logDir="C:\Program Files\CruiseControl.NET\Logs\Navtrak\H4CommandProcess\" />
    </publishers>
  </project>

How do I get the passed/failed test cases to show up on the cruisecontrol dashboard page for that specific build?

Thanks, Justin

A: 

See this article for some tips on how to get MSTest results to appear in CruiseControl.Net:

http://confluence.public.thoughtworks.org/display/CCNET/Using+CruiseControl.NET+with+MSTest

Essentially what you need to do is:

  • Get MSTest to save its test results to an xml (.trx) file (your raw build output might show test results in a test format, however CruiseControl.net needs the results in xml format)
  • Get CruiseControl.Net to merge this xml file into your cruise control build log.
  • Add an extra build report that uses an XSLT to show transform the xml test results into pretty html.

The above article goes into more detail on how to do this, as well as a couple of extra considerations (such as deleting old test results).

Also, I've noticed that you are using Visual Studio 2009 - something that the above article does not emphasis is that when you are setting up your dashboard to shown MSTest results, you need to make sure you use the VS2009 specific xslt in the CruiseControl.Net directroy, as the standard one won't display any results on the dashboard.

Kragen