【发布时间】:2010-10-04 11:32:45
【问题描述】:
一些背景:我试图在我当前的项目(.Net 4.0 和 VS 2010)上实现 Cruisecontrol (2.8.4)、MSBuild 和 MSTest 的集成。我正在使用 MSBuild 构建我的解决方案,并将一个 MSTest 作为 AfterBuild Target 添加到我的 .csproj 文件中以运行我的单元测试:
<Target Name="AfterBuild" DependsOnTargets="GetTestAssemblies" >
<Message Text="Normal Test" />
<Exec Command="del $(MSTestResultsFile)" ContinueOnError="true" />
<Exec WorkingDirectory="$(WorkingDir)" Command="MsTest @(TestAssemblies->'%(TestContainerPrefix)%(FullPath)',' ') /noisolation /resultsfile:$(MSTestResultsFile)" />
<Message Text="Normal Test Done" />
我已将 Cruisecontrol.config 配置为使用 MSBuild,即:
<schedule interval="300">
<exec command="cmd.exe"
workingdir="C:\CruiseControl\projects\Framework"
args="msbuild Solution.sln" />
</schedule>
当我从命令提示符运行构建时,即:cmd.exe:
msbuild <projectname>.sln
,解决方案和项目正确构建,单元测试运行并将结果输出到指定的/resultsfile:$(MSTestResultsFile)。
我的问题是当执行巡航控制计划中的命令时,构建(MSBuild)实际上成功但我的 MSTest:/resultsfile:$(MSTestResultsFile) 是空的。似乎根本没有运行单元测试。
我不知道为什么会这样? 任何帮助将不胜感激!
【问题讨论】:
标签: msbuild mstest cruisecontrol