MSTest не выполняется при запуске по расписанию Cruisecontrol - PullRequest
1 голос
/ 04 октября 2010

Краткая справка: я пытаюсь реализовать интеграцию 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) пуст.Кажется, что юнит-тесты вообще не запускались.

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

1 Ответ

0 голосов
/ 05 октября 2010

Изменение конфигурации расписания 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>
...