繁体   English   中英

netbeans cunit测试案件永远不会结束

[英]netbeans cunit tests cases never end

试图在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

从命令行工作就像一个魅力,结束没有问题。

以前有人遇到过这个问题吗? 没有捆绑我的笔记本电脑的任何方式来解决它? 提前感谢您的每一条评论。

您可以使用调试器(例如gdb)来跟踪发生的情况。

这将需要将调试标志添加到您的cunit代码中。 假设您正在使用gcc,这将是-g标志。

在使用调试标志进行编译之后,您可以使用调试器启动测试二进制文件,就像调试正常程序一样。

似乎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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM