尝试在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
命令行中的就像魅力一样,没有任何问题。
以前有人遇到过这个问题吗?没有捆绑我的笔记本电脑的任何方式来解决它?提前感谢您的每一条评论。
答案 0 :(得分:1)
您可以使用调试器(例如gdb)来跟踪发生的情况。
这将需要将调试标志添加到您的cunit代码中。假设你正在使用gcc,这将是-g标志。
使用调试标志进行编译后,您只需使用调试器启动测试二进制文件,就像调试普通程序一样。
答案 1 :(得分:1)
似乎Netbeans需要某个指令来停止测试套件,这正是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);
}