Сборка TeamCity не запускает новые тесты XUnit - PullRequest
3 голосов
/ 22 июня 2010

Я использую TeamCity 5 с Git VCS и сборкой Visual Studio 2010 SLN.

Мое решение имеет проект библиотеки классов, содержащий несколько тестов XUnit 1.5. Событие после сборки в этом проекте проходит тесты

$ (SolutionDir) libs \ XUnit-1.5 \ xunit.console.exe $ (SolutionDir) MyTestProj \ $ (OutDir) \ MyTestProj.dll

Это прекрасно работает для запуска всех моих тестов на моей машине разработчика и отлично работает на агенте сборки TeamCity.

Однако недавно я добавил в этот проект новую функцию тестирования XUnit, перенес ее в github, который был подобран TeamCity, и была запущена сборка. Но новый тест не был включен в прогон.

Похоже, что источник извлечен из другого каталога (например, c: \ checkedoutsource) в мой git-репозиторий (c: \ my_source), и когда сборщик SLN-сборок создает мое решение, событие post build 'запускает тесты 'предназначен для c: \ checkedoutsource \ bin \ debug \ MyTestProj.dll, а не для c: \ my_source \ bin \ debug \ MyTestProj.dll

У кого-нибудь есть предложения, как заставить TeamCity собрать мой тестовый проект и запустить событие после сборки для вновь созданной тестовой сборки? (без записи файлов сценариев MSBuild).

т.е. возможно ли установить визуальные переменные студии, такие как $ (SolutionDir) в сборщике сборки?

Надеюсь, что это имеет смысл, спасибо

1 Ответ

1 голос
/ 28 февраля 2011

В нашем проекте мы запускаем тесты из отдельной цели в * .msbuild файле:

<Project defaulttargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask AssemblyFile="Library\xUnit\xunit.runner.msbuild.dll" TaskName="Xunit.Runner.MSBuild.xunit"/>
    <Target Name="Build">
        <MSBuild Projects="MyProject.sln" Properties="Configuration=Release"/>
    </Target>
    <Target Name="RunTests">
        <xunit assembly="Tests\Output\MyProject.Tests.dll" />
    </Target>
</Project>

И мы настраиваем TeamCity для выполнения двух целей: Сборка , RunTests .

Предостережение заключается в том, что наши проекты копируют себя в событии после сборки в "хорошо известный" каталог, но этот каталог является относительным.

Надеюсь, это поможет.

...