其实每次跑完测试,测试用例都是跑完了的,但是最后 googletest 最后的返回码总是 134 (不是 0,0 就是代表没有任何问题,返回不是 0,就不能生成报告)。 具体就是:
//前面单个测试用例都是跑完没有出错的
03:00:20 [----------] Global test environment tear-down
03:00:20 [==========] 200 tests from 8 test cases ran. (6000 ms total)
03:00:20 [ PASSED ] 200 tests.
googletest 返回 134
墓碑:
其实知道是自己写的 unit test 代码有问题,但是又有点无从下手。代码有用到公司自己封装的消息队列,里面好像确实有互斥锁的使用,感觉可能是这里的问题。
求各位大佬给点启发,现在脑袋都想爆了。。
1
catror 2020-02-28 12:14:27 +08:00 via Android
这个错误提示不是挺直观的嘛,重复销毁了 mutex
|
2
amiwrong123 OP @catror 也是哈,但正常运行代码都没问题,就单元测试时有问题,说明单元测试重复销毁了锁呗
|
3
lcdtyph 2020-02-28 12:27:21 +08:00 via iPhone
gtest 什么版本啊,我记得旧版有个 bug,需要你在退出前手动释放 static 变量的内存(比如 shared_ptr::reset ),不然就会报错。
|
4
catror 2020-02-28 12:27:54 +08:00 via Android
@amiwrong123 如果是释放资源的问题,要看你正常运行代码的时候,有没有正常结束进程。
|
5
LvZZY 2020-03-09 21:22:06 +08:00
int main(int argc, char ** argv) {
printf("main In...\n"); // testing::InitGoogleTest(&argc, argv); //testing::InitGoogleMock(&argc, argv); // printf("return In...\n"); // printf(" main thread pid :%d, tid : %d\n", getpid(), gettid()); // return RUN_ALL_TESTS(); return 0; } 我这么写,也出现了这个问题,可以帮忙看下可能是什么原因吗 |