C++test のテストでは、テスト コンフィギュレーションのスコープ基準を満たす、選択されたリソース中のすべてのコードに対して、指定のアクション (テスト、テスト ケース生成、またはその両方) が実行されます。デフォルトでは、 テスト コンフィギュレーションの実行時に選択されていたリソース中のすべてのコードがチェックされます。ただし、次のような制限をかけることもできます。
- 指定の日付以降に追加/変更されたファイル/行だけをテストする。
- ローカル マシンで追加/変更されたファイル/行だけをテストする。
- 特定ユーザーによって変更されたファイルだけをテストする。
- 特定のフィルター条件に一致するファイルだけをテストする。
- 自動生成コードをテストから除外する。
一部のファイル フィルターと行フィルターはソース管理されているプロジェクトにだけ適用される点に注意してください。[スコープ] タブには以下の設定があります。
ファイル フィルター
- 時間オプション: 指定の時間条件に合わないファイルをテスト対象から除外します。次のオプションがあります。
- 時間フィルターなし: 最終変更日に基づいてファイルをテスト対象から除外しません。
- 締め切り後に追加または変更されたファイルだけをテスト: 指定の日付以降に追加/変更がなかったファイルをテスト対象から除外します。
- 指定した期間に追加または変更されたファイルだけをテスト: 指定の期間に追加または変更されなかったファイルをテスト対象から除外します。
- 現在の作業ブランチと次の間で変更されたファイルだけをテストする: 作業ブランチと指定されたブランチまたはリビジョン (または、[メイン インテグレーション ストリーム] オプションがオンの場合、"master" や "trunk" などの開発のメインストリーム) の間で追加または変更されていないファイルを除外します。このオプションが有効に動作するには、ソース管理システムへの接続が適切に設定され、ソース管理システムのデータに基づいて作成者が算出されている必要があります。このオプションは、Git SCM でだけサポートされます。
- ローカルで追加または変更されたファイルだけをテスト: ローカル マシンで追加/変更がなかったファイルをテスト対象から除外します。このオプションが有効に動作するには、ソース管理システムへの接続が適切に設定され、ソース管理システムのデータに基づいて作成者が算出されている必要があります。
- 作成者オプション: 指定の作成者条件に合わないファイルをテスト対象から除外し ます。次のオプションがあります。
- 作成者フィルターなし: ファイル作成者に基づいてファイルをテスト対象から除外しません。
- ユーザーが作成したファイルだけをテスト: 指定のユーザーが作成者ではないファイルをテスト対象から除外します。このオプションを使用すると、たとえば自分あるいは特定のグループのメンバーが作成したファイルだけに集中して作業できます。複数のユーザーを指定するには、カンマ区切りリストを使用します (例: matt, tom, joe)。
- パス オプション: 指定されたフィルター条件に一致するファイルをフィルタリングするよう、C++test を構成します。含めるファイル タイプを指定するには [承認] フィルターを使用します。除外するファイル タイプを指定するには [拒否] フィルターを使用します。
- 内容オプション: 指定されたマーカー (たとえば自動生成ファイル) を含むファイル をスキップするよう、C++test を構成します。それには、[内容が次の正規表現のいずれかに一致するファイルをスキップする] チェックボックスをオンにし、スキップしたいファイル中で使用されているタグを [ファイル内容の正規表現] で指定します。
- このタグを含むファイル中のコードをテストする場合、行フィルターの [コード ブロック オプション] を使ってテストしたいセクションを指定します。
フィルターのヒントと例
ヒント
- Perl 形式の式を使用できます。
- 次のワイルドカードがサポートされています。
- * は、スラッシュ (/) を除く 0 個以上の文字と一致します。
- ? は、スラッシュ (/) を除いた任意の 1 個の文字と一致します。
- ** は、スラッシュ (/) も含めて 0 個以上の文字と一致します。** を使用する と、パス要素を指定できます。
正規表現を使って「差分」を表すことができます。たとえば、TODO タグを追加、削除、 変更したソース コードだけをフラグする場合、[差分] フィールドに次のように指定します。
.*TODO.*
例
基本的なファイル マスクとして、次のものがあります。
- *.java, *.xml, *.properties
- *.c, *.cpp, *.h, *.cc, *.hpp, makefile, .project, .classpath
- *.c, *.cpp, *.h, *.cc, *.hpp, makefile, *.sln, *.prj, *.res
- *.cs, *.vb, *.sln, *.prj, *.resx
"bank" または "customer" というフォルダーをパスに含むすべてのファイルを含めるには、次のように指定します。
- **/bank/**, **/customer/**
"bank" で始まるフォルダー、 "customer" を含むフォルダー、"invoice" で終わるフォルダーをパスに含むすべてのファイルを含めるには、次のように指定します。
- **/bank*/**, **/*customer*/**, **/*invoice/**
1) 名前が "Test" で開始する 2) 任意のプロジェクトの src/test ディレクトリ内にある "security" サブ フォルダー中にある、という条件を満たすすべての .java ファイルを含めるには、次のように指定します。
**/src/test/**/security/Test*.java
1) ATM ソリューションにある 2) ATMLib プロジェクトにある 3) ComanyTests サブフォルダー内にある 4) "Test" で名前が開始するという条件を満たすすべての .cs ファイルを含めるには、次のように指定します。
ATM/ATMLib/CompanyTests/**/Test*.cs
行フィルター
C++test のテスト対象のコード行を制限します。行フィルターよりもファイル フィルターの方が先に適用されるので、行フィルターに到達するコードは、ファイル フィルターを通過している必要があります。利用できるオプションは次のとおりです。
- 時間オプション: 指定の時間条件に合わないコード行をテスト対象から除外します。次のオプションがあります。
- 時間フィルターなし: 最終変更日に基づいてコード行をテスト対象から除外しません。
- 締め切り後に追加または変更された行だけをテスト: 指定の日付以降に追加または変更がなかったコード行をテスト対象から除外します。 この機能が適用されるのは、C++test がサポートするソース管理システムでソース管理されているプロジェクトだけです。
- 指定した期間に追加または変更された行だけをテスト: 指定の期間に追加または変更されなかったコード行をテスト対象から除外します。
- ローカルで追加または変更された行だけをテスト: ローカル マシンで追加または変更がなかったコード行はテストの対象から外されます。この機能が適用されるのは、C++test がサポートするソース管理システムでソース管理されているプロジェクトだけです。
- 作成者オプション: 指定の作成者条件に合わないコード行をテスト対象から除外します。次のオプションがあります。
- 作成者フィルターなし: ファイル作成者に基づいてコード行をテスト対象から除外しません。
- ユーザーが作成した行だけをテスト: 指定ユーザーが最後に変更したコード行だけをチェックします。複数のユーザーを指定するには、ユーザー名をカンマで区切って入力します。
- コード ブロック オプション: 指定された開始マーカーと終了マーカーの間にあるコードだけを解析するよう、またオプションとして指定されたマーカーを含まないファイルをスキップするよう C++test を構成します。それには、[カスタム開始/終了コメント (正規表現) を使用して解析対象をマークする] チェックボックスをオンにし、テストするコード ブロックの開始と終了を表すマーカーを指定します。さらに、指定された開始/ 終了マーカーを含まないファイルをスキップするには、[マーカーのないファイルをスキップする] チェックボックスをオンにします。さらに、指定された開始/終了マーカーを含まないファイルをスキップするには、[マーカーのないファイルをスキップする] チェックボックスをオンにします。
注意
- コードの作成者情報と最終変更日は、[ スコープと作成者] の設定によって決まります。詳細については「タスクの割り当てとコード作成者の設定」を参照してください。