Получение вывода MSTest для отображения в CruiseControl.Net

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


person Community    schedule 30.07.2009    source источник
comment
Первая ссылка перемещена на blogs.blackmarble.co.uk/blogs/bm-bloggers/post/2006/06/14/   -  person sfuqua    schedule 28.02.2013


Ответы (3)


Я внес следующие изменения, чтобы вывод результатов 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"/>
person Dinesh Manne    schedule 22.07.2010
comment
Мне также пришлось перезапустить IIS, чтобы файл dashboard.config принял изменения, но у меня это сработало. - person Michael Joseph Kramer; 27.09.2010

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

person Alex    schedule 31.07.2009
comment
Кстати, если вам также нужно покрытие кода для этих тестов, см. Здесь dontbreakthebuild.blogspot.com/2008/11/ - person Alex; 31.07.2009

Что касается панели инструментов, я думаю, вам нужно добавить MSTest Summary в xlsFiles, но добавить плагин отчета сборки MSTest Report. Это,

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

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

person Katleen    schedule 27.07.2010