このセクションでは、静的解析を実行して、静的解析ルールに準拠していないコードを検出する方法について説明します。
このセクションの内容 :
ヘッダーの解析
C++test は、テスト対象のソース ファイルがヘッダーをインクルードしていない限り、ヘッダーを直接テストしません。
詳細については 「ヘッダー ファイルを解析するには ? どのファイルが解析されるのか ?」 を参照してください。
テンプレート関数の解析
C++test は、インスタンス化された関数テンプレートとインスタンス化されたクラス テンプレートのメンバーに対して静的解析と単体テストを実行できます。
詳細については 「C++test でのテンプレート関数のサポート」 を参照してください。
静的コード解析の実行
静的解析を実行するための基本手順は次のとおりです。
- 静的解析を実行するテスト コンフィギュレーションを選択します。
- ビルトイン テスト コンフィギュレーションの詳細については 「ビルトイン テスト コンフィギュレーション」 を参照してください。
- ユーザー定義テスト コンフィギュレーションを作成する方法については、「テストコンフィギュレーションとルールの設定」を参照してください。C++test の静的解析オプションについては 「[静的] タブ - 静的解析の方法を定義する」 を参照してください。
- 選択したテスト コンフィギュレーションを使ってテストを開始します。
- GUI からのテストの詳細については 「GUI からのテスト」を参照してください。
- コマンドライン (cpptestcli) からのテストの詳細については 「コマンドライン インターフェイスからのテスト」を参照してください。
- テスト結果をレビューして修正を行います。
- 「静的解析違反の検証と修正」を参照してください。
- (オプション) 必要に応じて静的解析の設定を調整します。
- 「静的解析のカスタマイズ - 概要」を参照してください。
cpptestcli によるコマンドライン モード解析の設定
定期的にコマンドライン モードで静的解析を実行するには、チームにとって重要な静的解析ルールを使ってプロジェクトを解析するテスト コンフィギュレーションを実行します。
たとえば:
- cpptestcli -data /path/to/workspace -resource "ProjectToTest" -config team://CodingStandard-sAnalysis -publish
コマンドライン モード テストの詳細については、「コマンドライン インターフェイスからのテスト」を参照してください。
静的解析による重複コードの検出
重複コードを特定して削除することで、コードをより簡潔で読みやすくし、保守をより容易にすることができます。たとえばコピーと貼り付けのミスなどによってほとんど同じコード フラグメントが開発プロセスで入り込んだ場合に、そのようなコードを検出できます。大規模なプロジェクトの場合、手動で重複を検出することは非効率的なため、重複コードの検出機能は特に有用です。
重複コードを検出するには、ビルトイン テストコンフィギュレーションの [Find Duplicated Code] を実行するか、重複コード [CDD] カテゴリの適切なルールを有効化したユーザー定義テスト コンフィギュレーションを実行します。
2 つのコード フラグメントを重複コードとしてレポートするかどうかの判定には、コードの類似性レベルが使用されます。このレベルはユーザーがカスタマイズできます。ルール プロパティを設定することで、変数名、文字列リテラル、数字リテラル、および論理リテラルを無視することができます。タブ、スペース、改行、コメントのようなテキスト フローのすべての違いは常に無視されます。
詳細については、重複コード [CDD] カテゴリのルールの説明を参照してください。