... тем временем я проверил проблему более подробно, и кажется, что мое первое предположение было верным (хотя я не осознавал, что не используется настоящий скрипт сборки, а используется простой пакет):
Проблема : один рабочий каталог используется для всех проектов. Каждый проект создает свой собственный файл 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>