Некоторые предпосылки: Я пытаюсь реализовать интеграцию 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)
пуст. Похоже, что модульные тесты вообще не выполнялись.
У меня нет подсказки, почему это происходит? Любая помощь будет оценена!