Мы активно делаем это на моем рабочем месте.
В настоящее время, мы используем вольный проект программного обеспечения для:
main()
, таким образом рассматривают как ошибки сборки , я также протестировал конфигурацию, которая использует XmlTestReporter, включенный с UnitTest ++ для генерации выходных файлов. xUnit плагин исходно поддержки этот вывод, наряду с любым другим выводом, который можно преобразовать, хотя я должен был изменить файл XSL, который шел с ним в версии 0.1.3 для записывания продолжительностей в тестовой истории.
существует много вещей, которые мы хотели бы улучшить о нашей интеграции; журналы сборки длинны и тверды проанализировать без окраски или выделения, и т.д., но до сих пор это все еще было выгодно для нас.
Задолго до того, как я начал использовать Гудзон, я работал над проектом C++, где мы использовали cpp-unit-lite и CruiseControl
, Мы изменили Cpp-unit-lite для генерации JUnit как файлы отчета о XML, и CruiseControl взял файлы отчета о XML.
можно сделать, то же для UnitTest ++ и Гудзон будет погрузка файлы отчета.
Однако, который походит на большую работу. Взгляните на плагин графика для Гудзона. Вы можете иметь извлечение сценария количество сбоя/передачи тестов от UnitTest ++ вывод и использовать плагин графика для рисования простого графика передачи/сбоя тестов на сборку.
Не столь хороший как встроенный отчет о модульном тесте, но что-то можно получить работу быстро.
Мы использовали аналогичный подход в моем офисе, кроме использования cxxtest вместо UnitTest ++, и теперь мы находимся в процессе к миграции на Google, значительно выше (по моему скромному мнению), gtest платформа.
С cxxtest, мы сделали что-то подобное тому, что предложенный Patrick J., который должен был в основном добавить шаг сборки, который запустит программу набора тестов через муравья и заставит сборку перестать работать, если какие-либо тесты перестанут работать. Недостаток этого подхода - когда сборка перестала работать из-за результата испытаний, тогда необходимо отправиться на охоту через консольный вывод для выяснения то, что пошло не так, как надо. Также Вы освобождаете изящные диаграммы, которые может генерировать Гудзон, если Ваша среда тестирования может произвести junit-совместимый XML.
Один из мотивирующих факторов для переключения на gtest - то, что он действительно генерирует junit XML, таким образом, в теории, Гудзон может проанализировать результаты испытаний и опубликовать их более разумным способом. Так или иначе не похоже, что UnitTest ++ генерирует что-либо как это (исправьте меня, если я буду неправ), таким образом, это мог бы быть спорный вопрос, но по крайней мере интеграция, то это в Ваш процесс сборки удостоверится, что тесты запущены во время сборок.
Я использую Гудзон с выводом xml и CppUnit. xml переводятся xslt в вывод JUnit как. Сайт CppUnit обеспечивает xslt, которые преобразовывают вывод CppUnit в вывод JUnit. Я взломал его немного для получения деталей mre как:
можно преобразовать вывод xml для получения следующего:
<?xml version="1.0" encoding="UTF-8"?>
<testsuite>
<testcase name="my test name"
classname="Package1.Package2.TestClass"
time="0.25">
<error type="error"/>
</testcase>
....
</testsuite>
В случае успеха: просто удалите тег sub
С уважением
Теперь у Хадсона есть плагин CppUnit , который может помочь.
I checked the xUnit plugin, as Patrick Johnmeyer suggested in the accepted answer. For completeness sakes, here is the driver code:
#include <fstream>
#include "UnitTest++.h"
#include "XmlTestReporter.h"
int main( int argc, char *argc[] ) {
std::ofstream f("file.xml");
UnitTest::XmlTestReporter reporter(f);
return UnitTest::RunAllTests(reporter, UnitTest::Test::GetTestList(), NULL, 0);
}
In Hudson configuration, check "Publish testing tools result report" and point it to "file.xml"