Я пытаюсь заставить Team City создать свое решение .NET и запустить свои тесты nUnit.
Я знаю, что могу изменить отдельные проекты и сказать им, чтобы они всегда запускали модульные тесты. Я не хочу, чтобы модульные тесты запускались, когда я нажимаю "build" в visual studio, но я do хочу, чтобы модульные тесты запускались, когда Team City запускает задачу msbuild.
Я попробовал "msbuild solutionname.sln" и дал команде city цели "BUILD" и мой пользовательский тег сборки "TEST". Тем не менее, msbuild не может найти ни одной указанной цели при вызове против решения sln. Итак, Я запустил msbuild, чтобы преобразовать свое решение в проект с такой целью:
<Target Name="Build">
<MSBuild Projects="@(BuildLevel0)" >
</Target>
Я наивно думал, что смогу написать новое задание, подобное этому:
<Target Name="BuildAndTest">
<CallTarget Targets="Build"/> <!-- This builds everything in solution -->
<CallTarget Targets="Test"/> <!-- DOES NOT WORK. This target exists in project that gets built by this solution -->
</Target>
Цель монахини выглядит следующим образом:
<Target Name="Test" DependsOnTargets="Build" Condition=" '$(Configuration)' == 'Release'">
<NUnit Assemblies="$(OutputPath)\Tsa.BaseTest.dll" ContinueOnError="false" ToolPath="C:\Program Files\NUnit 2.5.2\bin\net-2.0\" DisableShadowCopy="true" OutputXmlFile="$(OutputPath)\nunit-results.xml" />
</Target>
Как видите, он ссылается на OutputPath, о котором знает только проект - решение не имеет ссылки на $ OutputPath, иначе я бы просто поместил все тестовые цели в «проект решения».
Любые предложения о том, как я могу заставить это работать?