5

C プロジェクトを NetBeans でテストしようとすると、出力が次のようになっている間、テストが終了しません。

   Test: testFileOne ...passed   Test: testFileTwo ...passed

 Run Summary:    Type  Total    Ran Passed Failed Inactive
               suites      1      1    n/a      0        0
                tests      2      2      2      0        0
              asserts      8      8      8      0      n/a

 Elapsed time =    0.000 seconds

完了したように見えても、進行状況バーはまだ値 0.0% で輝いています。

テストケースはすべて次のようなものです:

void testMethod() {
     CU_ASSERT(1 == 1);
     //other lines of code..
     CU_ASSERT(0 == 0);
 }

関数ごとに複数の CU_ASSERT を使用します。NetBeans によって自動生成されたテスト コードでの一部の動作。

コマンド

make test

コマンドラインからはチャームのように機能し、問題なく終了します。

以前にこの問題に遭遇した人はいますか? ラップトップを混乱させずに解決する方法はありますか? いつもコメントありがとうございます。

4

2 に答える 2

1

Netbeans では、テスト スイートを停止するために特定のディレクティブ a が必要なようですが、これはまさにprintf("%%SUITE_FINISHED%% time=0\n");. テストは次のようになります (プレーンなバニラ C または CUnit のようなライブラリを使用しています)。

#include <stdio.h>
#include <stdlib.h>

void test1() {
    // do your stuff
}

int main(int argc, char** argv) {
    printf("%%SUITE_STARTING%% mysimpletest\n");
    printf("%%SUITE_STARTED%%\n");

    printf("%%TEST_STARTED%% test1 (mysimpletest)\n");
    test1();
    printf("%%TEST_FINISHED%% time=0 test1 (mysimpletest) \n");

    printf("%%SUITE_FINISHED%% time=0\n");

    return (EXIT_SUCCESS);
}
于 2013-01-23T10:35:00.700 に答える
1

デバッガー (gdb など) を使用して、何が起こったかを追跡できます。

これには、cunit コードにデバッグ フラグを追加する必要があります。gcc を使用していると仮定すると、これは -g フラグになります。

デバッグ フラグを指定してコンパイルした後は、通常のプログラムをデバッグするのと同じように、デバッガーを使用してテスト バイナリを開始するだけです。

于 2012-08-28T08:10:59.790 に答える