Интеграция MSTest с круиз-контролем для нескольких проектов - PullRequest
1 голос
/ 11 августа 2009

Я интегрировал MSTest с круиз-контролем для одного проекта, выполнив шаги, представленные в приведенной ниже ссылке. http://www.codeproject.com/KB/tips/VSTS2008_Tests_With_CCNET.aspx?display=Print.

Но если я добавлю несколько проектов, файл результатов будет перезаписан результатом 2-го проекта. Я не могу увидеть первый результат проекта.

Пожалуйста, дайте мне знать, как я могу отобразить несколько результатов проекта в результате тьфу.

1 Ответ

1 голос
/ 11 августа 2009

... тем временем я проверил проблему более подробно, и кажется, что мое первое предположение было верным (хотя я не осознавал, что не используется настоящий скрипт сборки, а используется простой пакет):

Проблема : один рабочий каталог используется для всех проектов. Каждый проект создает свой собственный файл results.xml, но, поскольку все они хранятся в одном месте, результаты перезаписываются.

Решение : Используйте отдельную папку для результатов каждого проекта (например, каталог артефактов проекта, который передается из CruiseControl в пакетный процесс в качестве переменной среды).

RunTests.bat:

del "%CCNetArtifactDirectory%\results.xml"
MSTest.exe /testcontainer:<PathtoTestProject>\Bin\Debug\TestAssembly.dll /resultsfile:"%CCNetArtifactDirectory%\results.xml"

ccnet.config

<project name="ProjectA">
    <cb:define projectArtifactDirectory="C:\path\to\data\of\ProjectA" />
    ...
    <artifactDirectory>$(projectArtifactDirectory)</artifactDirectory>
    ...
    <publishers>
        <merge>
            <files>
                <file>$(projectArtifactDirectory)\results.xml</file>
            </files>
        </merge>
    </publishers>
    ...
</project>
...