2010-10-04 1 views
1

Некоторые предпосылки: Я пытаюсь реализовать интеграцию Cruisecontrol (2.8.4), MSBuild и MSTest в моем текущем проекте (.Net 4.0 и VS 2010). Я использую MSBuild построить свое решение и добавил MSTest как AfterBuild Target в мои .csproj файлы для запуска моих модульных тестов:MSTest не выполняется при расписании Cruisecontrol

<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).

Моя проблема в том, что команда в расписании cruisecontrol выполнена, сборка (MSBuild) на самом деле выполняется, но мой MSTest: /resultsfile:$(MSTestResultsFile) пуст. Похоже, что модульные тесты вообще не выполнялись.

У меня нет подсказки, почему это происходит? Любая помощь будет оценена!

ответ

0

При изменении расписания 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> 
Смежные вопросы