我有自己的 Boost 测试运行器,我将参数传递给 unit_test_main
,如下所示:
char *myargs[] = {"", "--log_level=test_suite", "report_level=detailed", "output_format=xml", "--run_test=my_manual_test_suite1,my_manual_test_suite2"};
选择测试套件,执行测试用例。但是,在我的程序执行结束时,我遇到了内存损坏。有什么原因吗?
我的测试运行器是一个单独的 cpp 文件,其中包含所有测试用例以及 unit_test_main
。
编辑:我忘了补充一点,如果我从我的程序外部传递参数,就不会损坏。这很奇怪。
最佳答案
你能再分享一些代码吗?我想看看您在本地传递参数与从程序外部传递参数的区别。
编辑:
好的,我想我明白了。当您从外部传入参数时,它们会按顺序排列。例如,假设您调用 test.exe --log_level=all --run_test=mt1
。例如,第一个 arg 的地址是 0x10000。然后下一个arg的地址--log_level=all
从0x10009开始等等。当您自己串起 argv 时,情况并非如此。所以我的建议是像上面那样按顺序放置参数并试一试。
关于c++ - Boost UTF unit_test_main 的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726967/