2012-05-16 2 views
4

Я положил модульные тесты в C, работающие над hudson, но когда у меня есть тест, который проваливается, он показывает успех в сборке, но должен появиться неудачно!CUnit failures in hudson show success

Я использую GCC для компиляции и запустить исполняемый файл в Гудзоне так:

gcc -lcunit test_ctesting.c -o testing 
./testing 

это в команде оболочки, как я могу получить неудачи и показать его?

ответ

-1

Код выхода хранится в переменной $?, и я предполагаю, что если тесты терпят неудачу, они устанавливают что-то ненулевое.

... если это что-то unixy, во всяком случае.

+0

Я пробовал печатать $? переменная, но она показывает 0 к неудаче и успех – guisantogui

1

Вы можете использовать XML-документ CUnit, чтобы сообщить свой результат теста. Затем используйте «Опубликовать отчет о результатах теста JUnit» в Jenkins, чтобы показать результат.

См Кунят автоматизировано для вывода XML: http://cunit.sourceforge.net/doc/running_tests.html#automated

0

Я не уверен, если это то, что вы ищете, но пример кода Кунит делает это:

CU_basic_set_mode(CU_BRM_VERBOSE); 
    CU_basic_run_tests(); 
    CU_cleanup_registry(); 
    return CU_get_error(); 

я не могу точно помните, что CU_get_error() возвращает прямо сейчас, но не возвращает ненулевое значение, если у вас были неудачные тесты. Если вы хотите, чтобы понять это, вам нужно возвратить количество тестов не удалось:

unsigned int num_failures; 
    CU_basic_set_mode(CU_BRM_VERBOSE); 
    CU_basic_run_tests(); 
    num_failures = CU_get_number_of_failures(); 
    CU_cleanup_registry(); 
    return num_failures; 

Я не уверен, как Hudson/Jenkins занимается этим, но ненулевая возвращаемое значение будет иметь CMake/CTest не сообщать о прошедших тестах.

1

Вы можете сказать, что CUnit запускается автоматически, как предлагает Bjerking.

Он генерирует Xml с именем CUnitAutomated-Results.xml по умолчанию.

Этот xml необходимо преобразовать, чтобы быть понятным с помощью задачи «Опубликовать отчет о результатах теста JUnit» в Jenkins.

Шаги:

  • в тестовой программе (т.е. test.c) называют

    CU_automated_run_tests();

  • Make и вызовите тестовую программу из Дженкинс с командой, как это:

    ./test

  • Получить CUnit-to-JUnit transform и поставить его на машине построения
  • Transform CUnitAutomated-results.xml в Тест-result.xml с помощью Кунит к junit.xsl:

    xsltproc --novalid ../Build/cunit-to-junit.xsl CUnitAutomated-results.xml> Test-results.xml

  • Добавить «Опубликовать отчет о результатах теста JUnit» и указать на:

    Результаты испытаний.XML

Теперь, когда вы строите свой проект вы получите:

  • SUCCESS, если все тесты зеленый
  • неустойчивы, если у вас есть на один отказ не менее
  • полного Результат теста Trend