Получение вывода MSTest для показа в CruiseControl.Net - PullRequest
5 голосов
/ 31 июля 2009

В настоящее время наш сервер сборки настроен с 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 содержит результаты модульного теста, пропустил ли я какие-либо шаги?

Ответы [ 3 ]

3 голосов
/ 22 июля 2010

я внес следующие изменения, чтобы вывод результатов MSTest отображался в CruiseControl.NET

1) Для Dashboard - в dashboard.config добавлена ​​ссылка на xsl-файл Mstest 2008 в buildReportBuildPlugin

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

2) Для электронной почты - в ccservice.exe.config добавлена ​​ссылка на тот же файл xsl в разделе xslFiles

<file name="xsl\MsTestSummary2008.xsl"/>
1 голос
/ 27 июля 2010

Для панели инструментов, я думаю, вам нужно добавить MSTest Summary в xlsFiles, но добавить плагин MSTest Report report build То есть

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

Я пытался добавить MSTestReport на обоих, но это не сработало, но с настройкой выше. Надеюсь, это поможет ...

1 голос
/ 31 июля 2009

Вы настроили свою веб-панель управления с правильным xsl для форматирования выходных данных? Существуют две разные версии XSL (Сводка и Отчет) для VSTS 2005 и 2008, поскольку Microsoft резко изменила вывод XML между двумя версиями. Изменения были очень хорошими, просто ломая изменения.

...