4

ハドソン上で実行されているCに単体テストを配置しましたが、失敗したテストがあると、ビルドは成功しましたが、失敗したように見える必要があります。

私はgccを使用して、次のようにhudsonで実行可能ファイルをコンパイルして実行しています。

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

シェルコマンドにありますが、どうすれば失敗を取得して表示できますか?

4

4 に答える 4

1

Bjerking が提案するように、CUnit に自動で実行するように指示できます。

デフォルトでは、CUnitAutomated-Results.xml という名前の Xml が生成されます。

この xml は、Jenkins の「JUnit テスト結果レポートの公開」タスクから読み取られるように変換する必要があります。

手順:

  • テスト プログラム (つまり、test.c) 呼び出しで

    CU_automated_run_tests();

  • 次のようなコマンドを使用して、Jenkins からテスト プログラムを作成して呼び出します。

    。/テスト

  • CUnit から JUnit への変換を取得し、ビルド マシンに配置します
  • 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

プロジェクトをビルドすると、次のようになります。

  • すべてのテストが緑色の場合は成功
  • 少なくとも 1 つの障害がある場合は不安定です
  • 完全なテスト結果の傾向
于 2013-03-15T14:56:23.480 に答える
1

CUnit XML を使用してテスト結果を報告できます。次に、Jenkins の「Publish JUnit test result report」を使用して結果を表示します。

XML 出力用に自動化された CUnit を参照してください: http://cunit.sourceforge.net/doc/running_tests.html#automated

于 2012-06-02T09:17:01.650 に答える
0

これがあなたが探しているものかどうかはわかりませんが、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 は合格したテストを報告しません。

于 2012-10-03T02:07:45.120 に答える
-1

終了コードは変数$?に保存され、テストが失敗した場合はゼロ以外に設定されると想定しています。

...とにかく、それがunixyの場合。

于 2012-05-16T18:51:44.833 に答える