ハドソン上で実行されているCに単体テストを配置しましたが、失敗したテストがあると、ビルドは成功しましたが、失敗したように見える必要があります。
私はgccを使用して、次のようにhudsonで実行可能ファイルをコンパイルして実行しています。
gcc -lcunit test_ctesting.c -o testing
./testing
シェルコマンドにありますが、どうすれば失敗を取得して表示できますか?
ハドソン上で実行されているCに単体テストを配置しましたが、失敗したテストがあると、ビルドは成功しましたが、失敗したように見える必要があります。
私はgccを使用して、次のようにhudsonで実行可能ファイルをコンパイルして実行しています。
gcc -lcunit test_ctesting.c -o testing
./testing
シェルコマンドにありますが、どうすれば失敗を取得して表示できますか?
Bjerking が提案するように、CUnit に自動で実行するように指示できます。
デフォルトでは、CUnitAutomated-Results.xml という名前の Xml が生成されます。
この xml は、Jenkins の「JUnit テスト結果レポートの公開」タスクから読み取られるように変換する必要があります。
手順:
テスト プログラム (つまり、test.c) 呼び出しで
CU_automated_run_tests();
次のようなコマンドを使用して、Jenkins からテスト プログラムを作成して呼び出します。
。/テスト
cunit-to-junit.xsl を使用して CUnitAutomated-Results.xml を Test-Result.xml に変換します。
xsltproc --novalid ../Build/cunit-to-junit.xsl CUnitAutomated-Results.xml > Test-Results.xml
「JUnit テスト結果レポートの発行」タスクを追加し、次を指定します。
テスト結果.xml
プロジェクトをビルドすると、次のようになります。
CUnit XML を使用してテスト結果を報告できます。次に、Jenkins の「Publish JUnit test result report」を使用して結果を表示します。
XML 出力用に自動化された CUnit を参照してください: 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() が何を返すのか正確には覚えていませんが、テストが失敗した場合、0 以外の値は返されません。それを理解したい場合は、失敗したテストの数を返す必要があります。
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 は合格したテストを報告しません。
終了コードは変数$?
に保存され、テストが失敗した場合はゼロ以外に設定されると想定しています。
...とにかく、それがunixyの場合。