Программно собирать результаты NUnit - PullRequest
2 голосов
/ 11 июня 2010

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

Ответы [ 4 ]

3 голосов
/ 11 июня 2010

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

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

Вот пример такогоXSL-файл если вы запустите преобразование на прямом выходе nunit-console.exe, вам придется адаптировать операторы select и удалить cruisecontrol.

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

1 голос
/ 27 июня 2012

У нас было похожее требование, и нам нужно было прочитать XML-файл Test Result, созданный 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 голосов
/ 02 февраля 2015

Я приведу цитату из заметок о выпуске nunit 2.4.3 :

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

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

НТН

0 голосов
/ 25 июня 2012

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

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

...