Краткая справка: я пытаюсь реализовать интеграцию Cruisecontrol (2.8.4), MSBuild и MSTest в моем текущем проекте (.Net 4.0 и VS 2010).Я использую 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)
пуст.Кажется, что юнит-тесты вообще не запускались.
Понятия не имею, почему это происходит?Любая помощь будет оценена!