将MSTest与Cruise控件集成到多个项目中

时间:2009-08-11 06:35:58

标签: mstest

我已按照以下链接中的步骤将MSTest与巡航控制集成到单个项目中。它工作正常 http://www.codeproject.com/KB/tips/VSTS2008_Tests_With_CCNET.aspx?display=Print

但是如果我添加多个项目,结果文件将被第二个项目结果所取代。我无法看到第一个项目结果。

请告诉我如何在结果中显示多个项目结果。

1 个答案:

答案 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>