C++ 如何从cppcheck分析中排除测试路径?

C++ 如何从cppcheck分析中排除测试路径?,c++,ignore,cppcheck,C++,Ignore,Cppcheck,我尝试对我的代码运行cppcheck分析,该代码具有以下文件结构: /code/module_1/src/a.cpp /code/module_1/src/b.cpp /code/module_1/test/c.cpp /code/module_2/src/d.cpp /code/module_2/src/e.cpp /code/module_3/test/f.cpp 我想运行一个不包括所有测试代码的分析。使用像“cppcheck-itest”这样的命令可以实现这一点吗?这对我不起作用,尽管我

我尝试对我的代码运行cppcheck分析,该代码具有以下文件结构:

/code/module_1/src/a.cpp
/code/module_1/src/b.cpp
/code/module_1/test/c.cpp
/code/module_2/src/d.cpp
/code/module_2/src/e.cpp
/code/module_3/test/f.cpp
我想运行一个不包括所有测试代码的分析。使用像“cppcheck-itest”这样的命令可以实现这一点吗?这对我不起作用,尽管我认为应该,根据:

…目录名与路径的所有部分匹配

我使用的是1.69版。我知道我可以单独提到所有的测试目录(我检查过了,它确实有效),但是对于许多分析来说,模块的数量太多了


这是可能的吗?

我会使用类似于:

cppcheck /code/module_1/src /code/module_2/src  /code/module_3/src

我安装了Cppcheck来做一些测试,看起来
-I
实现有点疯狂。然而,我成功地实现了你想要的

解决方案:使用
-itest\
而不是
-itest
(这是在Windows中;可能Linux需要
-itest/

基本原理:在我的测试中,
-itest
仅在存在
\test\
目录时有效,在这种情况下,甚至
\a\test\a.cpp
也被排除在外。然而,对于
-itest\
,无论是否存在
\test\
目录,都会发生这种排除


这似乎是一个开发人员应该消除的错误,但同时,您可以成功地使用上述解决方法。

这是对一个老问题的一个迟来的回答,但这可能会帮助像我这样的其他后来者

免责声明:此答案适用于Windows

似乎v1.79已经解决了OP的问题。以下命令行语法适用于我:

cppcheck -itest code

在本例中,“-itest”删除了OP最初(正确)假定的任何“test”目录。此外,代码文件夹位于cppcheck.exe旁边。这将是递归源代码扫描的根

请解释为什么这比作者目前所做的更好。在目前的状态下,这个答案对于SO来说是非常低的标准,可能会被社区删除。对不起,我有点快。没有优势。但是,在我的方法中,如果命令行允许,则可以使用普通的命令行扩展:“cppcheck/code/*/src”,而不能使用“cppcheck-i/code/*/test”。您能否准确地提供您尝试使用的命令行?