🔍 问题描述:
静态分析没有检查结果,一个文件也没有检查,查看控制台输出,发现日志:未发现选中项目的构建选项。
可能原因 #
出现这种情况,可能的原因有很多,这里列出来一些可能的原因以及问题排查的方向,如果还是没办法解决,请联系技术支持。
第一种情况 #
可以先看控制台的输出,如果有如下输出:
那么考虑构建选项的问题。一般来说,这种输出代表C/C++test没有构建选项。如果不了解C/C++test如何创建项目的,可以先看cpptest新手入门(windows) | Parasoft中国官网了解。很可能是创建项目这边出现了问题。
第二种情况 #
如果没有以上说的控制台的输出,那么可以去查看BDF的内容是否正常,也就是包含构建信息。如果不清楚是否正常,一个简单的方式是可以查看BDF中是否有项目中参与编译的.c或者.cpp文件。
比较典型的,IAR 8.x版本项目,如果没有在生成BDF的时候加上 --cpptesttraceResponseFileOption=-f
,那么生成的BDF是有问题的:
解决办法要看什么原因造成的BDF不正常。
第三种情况 #
如果BDF看起来是正常的,但是静态分析还是没有检查文件。这个时候需要考虑选中运行静态分析的文件是否参与了构建。
比较典型的,示例项目ATM中参与构建的只有四个.cpp文件,TestObjectFactory.cxx
没有参与构建,如果只选择这个文件运行测试,就会出现这种报错:
除此之外,BDF中不会记录头文件,所以如果要测头文件,需要选中头文件以及包含了这个头文件的源文件一起测试。
第四种情况 #
如果BDF看起来是正常的,使用命令行选中测试的是整个项目,但是添加了-include
或者-exclude
参数,那么可以考虑删除这些参数运行,查看是否是这些参数的干扰。
一般来说,如果是属于这种情况,那么在导入项目之后,控制台可能会出现类似“发现以下文件的构建选项”这种语句:
第五种情况 #
出现第四种情况的截图,如果没有设置限定范围的语句,那么还有可能是参与本次编译的文件并没有成功导入进来。如果有界面的话,可以查看参与编译的文件是否导入进来了。
解决办法:界面的话,可以选中项目,右击找到新建➡️文件夹:
选择高级➡️链接到其他位置(链接文件夹):
然后把缺少的文件的目录链接进来就可以了。
如果是命令行,可以在运行cpptestcli
的时候,加上参数-property bdf.import.location=xxx
,这里的值可以考虑设置为要测文件的目录,或者要测文件们的共同目录。
或者也可以考虑在-settings参数后面的.properties文件中加上bdf.import.location=xxx
。