5

尝试在 NetBeans 上测试我的 C 项目,测试永远不会结束,而输出是:

   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 回答