我已按照以下链接中的步骤将MSTest与巡航控制集成到单个项目中。它工作正常 http://www.codeproject.com/KB/tips/VSTS2008_Tests_With_CCNET.aspx?display=Print
但是如果我添加多个项目,结果文件将被第二个项目结果所取代。我无法看到第一个项目结果。
请告诉我如何在结果中显示多个项目结果。
答案 0 :(得分:1)
...与此同时,我更详细地检查了问题,似乎我的第一个猜测是正确的(虽然我没有意识到没有真正的构建脚本,但使用了一个简单的批处理):
问题:所有项目都使用单个工作目录。每个项目都会生成自己的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>