Msbuild 由Cruisecontrol计划运行时未执行MSTest

Msbuild 由Cruisecontrol计划运行时未执行MSTest,msbuild,mstest,cruisecontrol,Msbuild,Mstest,Cruisecontrol,一些背景:我试图在我当前的项目(.Net 4.0和VS 2010)上实现Cruisecontrol(2.8.4)、MSBuild和MSTest的集成。我正在使用MSBuild生成解决方案,并将MSTest作为AfterBuild目标添加到.csproj文件中以运行单元测试: <Target Name="AfterBuild" DependsOnTargets="GetTestAssemblies" > <Message Text="Normal Test" /> <

一些背景:我试图在我当前的项目(.Net 4.0和VS 2010)上实现Cruisecontrol(2.8.4)、MSBuild和MSTest的集成。我正在使用MSBuild生成解决方案,并将MSTest作为AfterBuild目标添加到.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>

当我从命令提示符ie:cmd.exe运行构建时:

msbuild <projectname>.sln
msbuild.sln
,解决方案和项目正确生成,单元测试运行并将结果输出到指定的
/resultsfile:$(MSTestResultsFile)

我的问题是,当执行cruisecontrol计划中的命令时,生成(MSBuild)实际上成功了,但我的MSTest:
/resultsfile:$(MSTestResultsFile)
为空。单元测试似乎根本没有运行

我不知道为什么会这样?
任何帮助都将不胜感激

通过更改cruisecontrol计划配置以使用msbuild.exe代替cmd.exe,将导致执行单元测试

<schedule interval="300">
    <exec command="msbuild.exe"
                    workingdir="C:\Windows\Microsoft.NET\Framework\v4.0.30319"
                    args="C:\CruiseControl\projects\DTSFramework\DTS.Solution.sln" />
</schedule>