Я хочу запускать автоматические тесты NUnit для приложения C # каждую ночь и при каждой фиксации в svn.
Может ли это Jenkins-CI?
Есть ли онлайн-учебник или практический документ, в котором описана аналогичная установка, которую я могу просмотреть?
c#
continuous-integration
hudson
jenkins
голубика
источник
источник
Ответы:
Мне нужно было делать именно то, что вы делаете, вот как я настраиваю Дженкинса для этого:
Тест одиночной dll:
Тестирование нескольких dll с использованием тестовых проектов NUnit :
После создания проекта NUNit будет запущен, и результаты будут доступны для просмотра либо на панели инструментов (если вы наведете курсор на значок отчета о погоде), либо на странице проекта в разделе « Последний результат теста» .
Вы также можете запустить команду из Visual Studio или как часть локального процесса сборки.
Вот два сообщения в блоге, которые я использовал для справки. Я не нашел ни одного, которое точно соответствовало бы моим требованиям:
1-часовое руководство по настройке непрерывной интеграции: Jenkins встречает .Net (2011 г.)
Руководство по созданию проектов .NET с использованием Hudson (2008 г.)
источник
"C:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe" UnitTests/UnitTests.nunit
. У меня отлично сработало.Если вы не хотите жестко кодировать свои проекты модульного тестирования, вам лучше написать сценарий, чтобы получить все библиотеки dll вашего проекта модульного теста. Мы делаем это с помощью Powershell и следуем определенному соглашению для именования наших проектов модульного тестирования. Вот содержимое файла PowerShell, в котором выполняются наши модульные тесты:
Скрипт достаточно надежен, поэтому мы повторно используем его для всех наших задач сборки. Если вам не нравится полный путь к консоли NUnit, вы всегда можете указать это местоположение в переменной среды PATH.
Затем мы помещаем файл RunUnitTests.ps1 на наш сервер сборки и используем эту пакетную команду:
источник
[string] $sourceDirectory = $(get-location)
и для путей с пробелами я должен был изменить узел переходит к NUnit в$cFiles = $cFiles + '"' + $file + '"' + " "
Для Nunit 3 и выше:
Building Step (командная строка Windows)
"c:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" c:\AutomationTraining\CSharpSelenium\bin\Debug\test.dll --result=TestR.xml;format=nunit2
Шаг публикации для публикации отчета Nunit, он показывает только файл результатов теста в каталоге рабочей области Jenkins, а не в вашем проекте: TestR.xml
Нам нужно сделать результаты тестов в формате nunit2, потому что теперь плагин Jenkins Nunit не распознает формат результатов Nunit3. Также формат строки параметров отличается:
--result=TestR.xml;format=nunit2
НЕ/xml=nunit-result.xml
источник
Это прекрасно работает, я уже настраивал это раньше.
Настройте NUnit для вывода результатов в файл XML и настройте подключаемый модуль NUnit Jenkins для использования этого файла XML. Результаты будут доступны на панели управления.
Теперь, как вы вызываете NUnit, зависит от вас. Мы сделали это следующим образом: задание Jenkins выполняет NAnt target выполняет набор тестов NUnit.
Вы можете настроить задания Jenkins для запуска при фиксации и / или по расписанию в определенное время.
источник
Решение от Ральфа Уиллгосса работает хорошо, но я изменил 2 вещи, чтобы сделать его отличным:
а) Я использовал проект NUnit вместо файла DLL напрямую. Это упрощает добавление дополнительных сборок или настройку теста в графическом интерфейсе NUnit.
б) Я добавил в пакет еще одну строчку, чтобы не допустить сбоя сборки в случае сбоя теста:
Упомянутый плагин NUnit автоматически помечает сборку как НЕСТАБИЛЬНУЮ , что я и хочу, когда тест не проходит. Он отображается желтой точкой.
источник
Я думаю, что лучше отказать сборке, если она не прошла, чтобы не развертывать ее. Сделайте что-нибудь вроде этого:
Ссылка: http://www.greengingerwine.com/index.php/2013/01/tip-check-errorlevel-in-your-post-build-steps-when-using-nunit/
источник
У Jenkins есть плагины, которые это поддерживают. Точная конфигурация будет сильно зависеть от настроек вашего проекта. Существуют специальные плагины для nUnit, MSBuild, nAnt и т. Д. Начните с просмотра страницы плагинов, но понять это не должно быть очень сложно.
источник
Это мое решение для запуска OpenCover с vstest в Jenkins:
Каждая тестовая dll выполняется в отдельном процессе, потому что у нас возникли проблемы с выполнением всех тестовых dll в одном процессе (проблемы с загрузкой сборки).
источник
Для .Net Core достаточно добавить шаг сборки «выполнить оболочку» со следующим скриптом:
После этого добавьте действие после сборки «Опубликовать отчет о результатах теста MSTest», чтобы результаты теста были видны.
Путь к отчетам по умолчанию должен быть
**/*.trx
и будет публиковать все созданные.trx
файлы.источник