Использование определенной конфигурации Visual Studio Project Build для запуска модульных тестов - PullRequest
2 голосов
/ 07 сентября 2011

В моей компании уже есть Team Foundation Server в качестве платформы непрерывной интеграции.Однако я хочу настроить конфигурацию сборки, которую разработчик может запустить на своем собственном компьютере для разработки.

Допустим, у меня есть решение Visual Studio, которое содержит проект библиотеки классов .NET C # (назовите это Библиотечным Проектом).Он также содержит другой проект, содержащий классы модульного тестирования для библиотечного проекта (назову его «Проект тестирования»).

У меня есть обычные конфигурации сборки Debug и Release для каждого проекта и на уровне решения.Для обеих этих конфигураций я настроил его только на сборку библиотечного проекта (поэтому проект тестирования не собирается).

Я хотел бы настроить 2 новые конфигурации сборки, называемые «Отладка с тестированием», иВыпуск с тестированием.Каждый из них будет таким же, как Debug и Release, соответственно, но мне нужно, чтобы они имели следующие дополнительные функции:

  1. Сборка проекта тестирования.
  2. Запуск всех тестовых примеров вПроект тестирования.
  3. Запуск анализа кода в библиотечном проекте.
  4. Создание отчета для тестирования и анализа кода.
  5. Сохранение отчета в определенном месте.

Выполнить пункт 1 легко.Тем не менее, я не могу понять, как выполнять пункты 2-5. Может ли кто-нибудь указать мне правильное направление?

Любая помощь будет принята с благодарностью.ТИА

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Вам нужно будет написать собственный код сборки MS, я уже выполняю некоторую задачу, аналогичную следующей:

  • Получите последние изменения из TFS
  • Постройте решение, включающее все проекты
  • Локальное развертывание основной базы данных
  • Локальное развертывание тестовой базы данных, в которой хранятся тестовые данные, используемые в тесте, управляемом данными
  • Запустите проверку работоспособности или BVT (Build Verification Test)которая относится к категории 1 (проверить интеграцию между БД и кодом)
  • Регистрация ожидающих изменений

И услышать код этой задачи

<Target Name="GetLatestFromTFS2010" AfterTargets="build" >
 <Message Importance="high" Text ="start GetLatest for the project "></Message>
 <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" get $/AutoDBand/AutomateDatabaseAndTest/AutomateDatabaseAndTest /recursive /login:YourUsername,YourPassword' ContinueOnError='false'/>

 </Target>
 <!--===========Deploy Database============-->
 <Target Name="DeployDatabase" AfterTargets="GetLatestFromTFS2010" Condition="'$(Configuration)' == 'DebugForCheck-in'">
 <Message Importance="high" Text="-------------------------------- Deploying Database according to the connection string -------------------------------- " />
 <Message Importance="high" Text=" "/>
 <MSBuild Projects="..\DB\DB.dbproj" Targets="Build;Deploy" />
 </Target>

 <!--============Run the Test==================-->
 <Target Name="UnitTests" AfterTargets="DeployDatabase" Condition="'$(Configuration)' == 'DebugForCheck-in'">
 <Message Importance="high" Text="--------------------------------&nbsp; Running Unit Tests for category 1 only--------------------------------"&nbsp; />
 <Message Importance="high" Text=" "/>
 <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe" /testcontainer:"..\BLTest\bin\Debug\BLTest.dll" /category:cat1' />
 </Target>

 <Target Name="Chekin-pendingChange" AfterTargets="UnitTests" >
 <Message Importance="high" Text ="-------------------------------- start Check-in process-------------------------------- "></Message>
 <Message Importance="high" Text=" "/>
 <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" checkin $/AutoDBand/AutomateDatabaseAndTest/AutomateDatabaseAndTest /recursive /login:YourUsername,YourPassword' ContinueOnError='false'/>
 </Target>

Для получения дополнительной информации вы можете увидеть эту статью с исходным кодом http://mohamedradwan.wordpress.com/2010/11/13/automate-the-best-practice-for-check-in-including-get-latest-deploy-db-run-test-check-in/

0 голосов
/ 07 сентября 2011

Посмотрите на что-то вроде:

- это серверы непрерывной интеграции, которые хорошо справляются с заданиями, которые вы хотели бы выполнить.

...