2012-04-19 2 views
2

На данный момент я пытаюсь настроить автоматическое тестирование на Jenkins. У меня есть решение Visual Studio, которое содержит 4 разных проекта, один из которых - это мой тестовый проект NUnit с несколькими тестами в других трех проектах.NUnit и непрерывная интеграция с Дженкинсом: какие файлы NUnit необходимы?

Я добавил PostBuild-событие в тестовом проекте NUnit в Visual Studio следующего содержания:

`$(SolutionDir)Libs\NUnit-2.6.0.12051\bin\nunit-console.exe $(TargetPath)` 

Он отлично работает, но это типичный путь? Проект тестирования является последним в моем порядке сборки, я не думаю, что имеет смысл добавлять события PostBuild в 3 других проекта?


Как вы можете видеть на пути, указанному выше, моя Визуальная папка Студия проект имеет папку, которая называется «Libs». Здесь я вставляю свои зависимости, а также NUnit. Но папка NUnit имеет около 8 МБ. Можете ли вы сказать, какие файлы я могу удалить? Потому что в противном случае на каждой фиксации на исходный элемент управления, пользователи должны передавать 8 МБ только для NUnit, что я немного думаю.

Для создания тестов мне определенно нужен nunit.framework.dll. Мне также нужен console-runner.exe для запуска тестов. Но что еще мне нужно? К сожалению, console-runnter.exe имеет зависимости от некоторых других файлов и сбоев без них.

Спасибо

ответ

3

Я использую несколько иной подход к интеграции NUnit с Visual Studio (C#, MSBuild) в Дженкинс. Решение VS содержит несколько проектов под ним, которые составляют около 10 библиотек DLL и 1 приложение. Решение Visual Studio не вызывает NUnit.

Сидя рядом с кодом «приложение» является каталогом, содержащим тестовый код. Существует тестовое решение, которое построено независимо. Он ссылается на выход приложения.

Как Visual Studio, так и NUnit устанавливаются как приложения на машине сборки Jenkins.

Наша основная схема каталога

  • Компоненты
    • бен (созданные)
    • Различные исходные каталоги
    • Component.sln
  • Тесты
    • бен (Creat ред)
    • Различные источники тематических тестов NUnit
    • Tests.sln

Основной этапы сборки в Jenkins

  1. Использование шаг MSBuild, MSBuild компоненты/Компоненты.SLn
  2. Используя шаг MSBuild, MSBuild Тест/Test.sln
  3. Использование шаг пакетного файла для Windows, Invoke NUnit на тесты/Tests.sln:

    nunit-console.exe Tests\Tests.sln /xml=nunit-test-results.xml /labels

  4. Настройка действие после сборки используя плагин xUnit Jenkins для обработки nunit-test-results.xml и отображения результатов.

+0

Спасибо за этот четкий и краткий ответ! – callisto

0

Чтобы ответить на 2 вопроса:

  1. Я использую событие после сборки на мой тестовый проект, чтобы запустить консоль NUnit таким же образом, как вы описали. Хорошо работает в нашей среде.

  2. Как вы сказали, вам необходимо включить nunit.framework.dll в ваши тесты. Для перспективы их, консоль NUnit будет работать вполне счастливо с только следующими файлами:

    bin\nunit-console.exe 
    bin\nunit-console.exe.config 
    bin\lib\nunit.core.dll 
    bin\lib\nunit.core.interfaces.dll 
    bin\lib\nunit.util.dll 
    bin\lib\nunit-console-runner.dll 
    

    Это составляет около 500KB файлов для NUnit 2.6.

0

Я бы рекомендовал написать файл сценария вместо нескольких шагов, определенных в Дженкинсе. Мы используем powershell для вызова msbuild и nunit-console. Таким образом, наши разработчики могут просто вызвать этот сценарий powershell до совершения. Кроме того, намного проще настроить Jenkins (или любой другой сервер сборки), если шаги сборки/тестирования/компоновки/развертывания являются автономными.

Смежные вопросы