2015-05-21 10 views
5

ich versuche, eine cppcheck Analyse über meinen Code auszuführen, der die folgende Dateistruktur hat:Wie können Testpfade von der cppcheck-Analyse ausgeschlossen werden?

/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 

Ich mag würde eine Analyse ohne alle Testcode auszuführen. Ist das mit einem Befehl wie "cppcheck -itest" möglich? Es funktioniert nicht für mich, obwohl ich denke, es sollte nach the docs:

... Verzeichnisname ist auf alle Teile des Pfads abgestimmt.

Ich benutze Version 1.69. Ich weiß, ich könnte alle Testverzeichnisse getrennt erwähnen (was funktioniert, habe ich überprüft), aber die Anzahl der Module ist zu hoch, um dies für viele Analysen vernünftig zu tun.

Ist das möglich?

+0

Können Sie bitte genau die Befehlszeile angeben, die Sie verwenden möchten? –

Antwort

0

würde ich so etwas wie verwenden:

cppcheck /code/module_1/src /code/module_2/src /code/module_3/src 
+0

Bitte erläutern Sie, warum dies besser ist als das, was der Autor gerade tut. In ihrem aktuellen Zustand ist diese Antwort ein sehr niedriger Standard für SO und wird wahrscheinlich von der Community gelöscht. –

+0

Sorry ich war ein bisschen schnell. Es gibt keinen Vorteil. Bei meiner Vorgehensweise, wenn die Befehlszeile dies zulässt, ist es möglich, die normale Befehlszeilenerweiterung zu verwenden: "cppcheck/code/*/src", während "cppcheck -i/code/*/test" nicht verwendet werden kann. –

2

ich cppcheck installiert einige Tests zu tun, und es scheint, die -i Implementierung ist ein bisschen verrückt. Aber ich habe erreicht, was Sie wollen.

Lösung: Verwendung -itest\ statt -itest (dies war in Windows, vielleicht Linux braucht -itest/)

Begründung: in meinen Tests -itest nur gearbeitet, wenn ein .\test\ Verzeichnis ist, in diesem Fall sogar .\a\test\a.cpp wurde ausgeschlossen. Mit -itest\ wurde dieser Ausschluss jedoch unabhängig vom Vorhandensein des Verzeichnisses .\test\ durchgeführt.

Das scheint wie ein Fehler, den die Entwickler ausmerzen sollten, aber in der Zwischenzeit können Sie die obige Problemumgehung erfolgreich verwenden.

0

Dies ist eine späte Antwort auf eine alte Frage, aber vielleicht hilft dies anderen Nachzüglern wie mir.

Haftungsausschluss: Diese Antwort gilt für Windows.

Es scheint, als ob v1.79 das OP-Problem behoben hat. Die folgende Befehlszeilensyntax hat für mich gearbeitet:

cppcheck -itest code 

In diesem Beispiel „-itest“ Unkraut jedes Vorkommen des „test“ Verzeichnis, wie ursprünglich (und richtig) vom OP angenommen. Außerdem befindet sich der Code-Ordner neben der cppcheck.exe. Dies wird die Wurzel des rekursiven Quellcode-Scans sein.

Verwandte Themen