2009-07-30 15 views
5

Mam obecnie nasz serwer kompilacji skonfigurowany z CruiseControl.Net, który wykonuje kompilację przy użyciu MSBuild, a następnie wykonuje testy jednostkowe przy użyciu MSTest. Problem polega na tym, że nie widzę danych wyjściowych testów jednostkowych w CC - wiem, że są one uruchamiane, ponieważ mogę spowodować, że kompilacja nie powiedzie się, jeśli popełnię błąd.Pierwsze wyjście MSTest do pokazania w CruiseControl.Net

Śledziłem przewodniki online od http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspx i http://www.softwarepassion.com/?p=89, ale wciąż nie mam szczęścia.

Mój plik ccnet.config zawiera

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

plik dziennika w katalogu C: \ Program Files \ CruiseControl.NET \ server \ Checkin Budowanie \ Artefakty \ buildlogs zawiera wyniki testów jednostkowych, nie brakowało mi żadnych kroków ?

+1

Pierwszy link został przeniesiony, teraz na http://blogs.blackmarble.co.uk/blogs/bm-bloggers/post/2006/06/14/MSTest-and-CruiseControl-NET -.aspx – sfuqua

Odpowiedz

1

Czy skonfigurowałeś swój pulpit nawigacyjny z poprawnym xsl, aby sformatować wyjścia? Istnieją dwie różne wersje XSL (Podsumowanie i Raport) dla VSTS 2005 i 2008, ponieważ Microsoft drastycznie zmienił dane wyjściowe XML pomiędzy dwiema wersjami. Zmiany były bardzo dobre, po prostu zmieniając zmiany.

+1

Przy okazji, jeśli chcesz również zasięg kodu na tych testach, zobacz tutaj http://dontbreakthebuild.blogspot.com/2008/11/codecoverage-and-unittesting-on-ccnet.html – Alex

3

i dokonała następujących zmian, aby uzyskać wyjście MSTest wyniki mają być przedstawione w CruiseControl.NET

1) dla Dashboard - w dashboard.config dodane odniesienie do pliku xsl MSTest 2008 pod buildReportBuildPlugin

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

2) e-mail - w ccservice.exe.config dodaje odniesienie do tego samego pliku xsl ramach sekcji xslFiles

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

Musiałem też zrestartować IIS, aby pobrać dashboard.config do pobrania zmian, ale zadziałało to dla mnie. –

1

deski rozdzielczej, myślę, że należy dodać MSTest Podsumowanie w pliku xlsFiles, ale należy dodać wtyczkę raportu budowania MSTest Report. Oznacza to, że

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

Próbowałem dodanie MSTestReport na obu, ale to nie działa, ale przede ustawienie zrobił. Nadzieję, że pomaga ...

Powiązane problemy