2010-06-11 3 views
2

Я запускаю некоторые тесты NUnit автоматически, когда моя ночная сборка завершается. У меня есть консольное приложение, которое обнаруживает новую сборку, а затем копирует встроенные MSI в локальную папку и развертывает все мои компоненты на тестовом сервере. После этого у меня есть множество тестов в DLL NUnit, которые я запускаю, выполняя «nunit-console.exe» с помощью Process/ProcessStartInfo. Мой вопрос в том, как программно я могу получить номера для тестов Total Success/Failed?Programmatically Gathering Результаты NUnit

ответ

3

Рассматривали ли вы использование непрерывного сервера интеграции, такого как CruiseControl.NET?

Он строит и запускает тесты для вас и отображает результаты на веб-странице. Если вы просто хотите инструмент, пусть nunit-console.exe выводит результаты в XML и анализирует/преобразует его с помощью XSLT-скрипта, подобного тем, которые поступают из круиз-контроля.

Here is an example of such an XSL file Если вы выполняете преобразование на прямом выходе nunit-console.exe, вам придется адаптировать операторы выбора и удалить cruisecontrol.

Однако, похоже, вас может заинтересовать непрерывная интеграция.

0

У нас недавно было аналогичное требование, и он написал небольшую библиотеку с открытым исходным кодом для объединения файлов результатов в один совокупный набор результатов (как если бы вы выполнили все тесты с помощью одного запуска nunit-console).

Вы можете найти его на https://github.com/15below/NUnitMerger

1

У нас были аналогичные требования, и то, что мы сделали, чтобы прочитать в XML-файл Результат теста, который генерируется NUnit.

XmlDocument testresultxmldoc = new XmlDocument(); 
testresultxmldoc.Load(this.nunitresultxmlfile); 

XmlNode mainresultnode = testresultxmldoc.SelectSingleNode("test-results"); 
this.MachineName = mainresultnode.SelectSingleNode("environment").Attributes["machine-name"].Value; 
int ignoredtests = Convert.ToInt16(mainresultnode.Attributes["ignored"].Value); 
int errors = Convert.ToInt16(mainresultnode.Attributes["errors"].Value); 
int failures = Convert.ToInt16(mainresultnode.Attributes["failures"].Value); 
int totaltests = Convert.ToInt16(mainresultnode.Attributes["total"].Value); 
int invalidtests = Convert.ToInt16(mainresultnode.Attributes["invalid"].Value); 
int inconclusivetests = Convert.ToInt16(mainresultnode.Attributes["inconclusive"].Value); 
0

Я процитирую из release notes for nunit 2.4.3:

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

(внимание мое). Здесь подразумевается, что, как обычно в bash, возврат 0 указывает на успех, а ненулевой - отказ или ошибка (как указано выше).

HTH

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

  • Нет связанных вопросов^_^