我把單元測試在C運行哈德遜,但是當我有一個測試失敗它顯示在構建成功,但必須出現失敗!在哈德遜CUnit失敗顯示成功
我使用gcc來編譯和運行一樣,在哈德森的可執行文件:
gcc -lcunit test_ctesting.c -o testing
./testing
很shell命令,我怎麼能得到失敗,並顯示它?
我把單元測試在C運行哈德遜,但是當我有一個測試失敗它顯示在構建成功,但必須出現失敗!在哈德遜CUnit失敗顯示成功
我使用gcc來編譯和運行一樣,在哈德森的可執行文件:
gcc -lcunit test_ctesting.c -o testing
./testing
很shell命令,我怎麼能得到失敗,並顯示它?
退出代碼存儲在變量$?
中,我假設如果測試失敗它將被設置爲非零。
......如果是unixy的話,無論如何。
您可以使用CUnit XML來報告您的測試結果。然後使用Jenkins中的「發佈JUnit測試結果報告」來顯示結果。
見CUNIT自動爲XML輸出:http://cunit.sourceforge.net/doc/running_tests.html#automated
我不知道如果這是你在找什麼,但CUNIT示例代碼執行此:
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;
我不知道哈德森/詹金斯如何與這個交易,但返回非零值會有的CMake/CTEST不報告通過測試。
您可以告訴CUnit按照Bjerking的建議自動運行。
它默認生成名爲CUnitAutomated-Results.xml的Xml。
此xml必須轉換爲從Jenkins的「Publish JUnit測試結果報告」任務中讀取。
步驟:
(即test.c的)調用
CU_automated_run_tests();
製作和詹金斯用這樣的命令來調用你的測試程序:
./test
變換CUnitAutomated-Results.xml對試驗爲result.xml使用庫尼特到junit.xsl:
xsltproc的--novalid ../Build/cunit-to-junit.xsl CUnitAutomated-Results.xml>測試-Results.xml
添加「發佈JUnit測試結果報告」任務並指向:
測試結果。XML
現在,當你建立你的項目,你可以獲得:
我試過打印$?變量,但它顯示0失敗併成功 – guisantogui