C++test のテストでは、テスト コンフィギュレーションのスコープ基準を満たす、選択されたリ ソース中のすべてのコードに対して、指定のアクション ( テスト、テスト ケース生成、またはその 両方) が実行されます。デフォルトでは、 テスト コンフィギュレーションの実行時に選択されてい たリソース中のすべてのコードがチェックされます。
ただし、次のような制限をかけることもできま す。
- 指定の日付以降に追加/ 変更されたファイル/ 行だけをテストする。
- ローカル マシンで追加/ 変更されたファイル/ 行だけをテストする。
- 特定ユーザーによって変更されたファイルだけをテストする。
- 特定のフィルター条件に一致するファイルだけをテストする。
- 自動生成コードをテストから除外する。
一部のファイル フィルターと行フィルターはソース管理されているプロジェクトにだけ適用される 点に注意してください。
ファイル フィルター
- 時間オプション: 指定の時間条件に合わないファイルをテスト対象から除外します。 次のオプションがあります。
- 時間フィルターなし 最終変更日に基づいてファイルをテスト対象から除外 しません。
- 締め切り後に追加または変更されたファイルだけをテスト 指定の日付以降 に追加/ 変更がなかったファイルをテスト対象から除外します。 [ かつ次の 日付までに追加または修正されたファイル( 無効の場合は現在日付)] チェックボックスをオンにして日付を指定すると、締め切り後からの期間を 指定できます。
- 指定した期間に追加または変更されたファイルだけをテスト 指定の期間に 追加または変更されなかったファイルをテスト対象から除外します。
- 作業ブランチと次のブランチの間に更新されたファイルだけをテストする 開発者の作業ブランチ ( ワークスペース) と指定されたブランチ ( または当 該オプションが有効な場合、検出されたデフォルトの統合ストリーム) の間 で変更されなかったファイルをテスト対象から除外します。ストリーム名 は、開発者の作業ストリームの親の階層にあるストリームです。デフォルト の統合ストリームは、開発者の作業ストリームの親ストリームです。たとえ ば、[Main] --- [Integration] --- [Developer] という階層がある場合、 Integration が Developer ストリームのデフォルトの統合ストリームです。 現在これは SVN、AccuRev、 および Clear Case についてサポートされて います。
- ローカルで追加または変更されたファイルだけをテスト ローカル マシン で追加/ 変更がなかったファイルをテスト対象から除外します。この機能が 適用されるのは、C++test がサポートするソース管理システムでソース管 理されているプロジェクトだけです。
- 作成者オプション 指定の作成者条件に合わないファイルをテスト対象から除外し ます。次のオプションがあります。
- 作成者フィルターなし ファイル作成者に基づいてファイルをテスト対象か ら除外しません。
- ユーザーが作成したファイルだけをテスト 指定のユーザーが作成者ではな いファイルをテスト対象から除外します。 このオプションを使用すると、た とえば自分あるいは特定のグループのメンバーが作成したファイルだけに集 中して作業できます。複数のユーザーを指定するには、カンマ区切りリスト を使用します ( 例: matt, tom, joe)。
- パス オプション 指定されたフィルター条件に一致するファイルをフィルタリングす るよう、C++test を構成します。含めるファイル タイプを指定するには [ 承認] フィルターを使用します。除外するファイル タイプを指定するには [ 拒否] フィル ターを使用します。Code Review カテゴリのテスト コンフィギュレーションでは、 一般的なフィルタリング オプションがあらかじめ設定されています。
- 内容オプション 指定されたマーカー ( たとえば自動生成ファイル) を含むファイル をスキップするよう、C++test を構成します。それには、[ 内容が次の正規表現の いずれかに一致するファイルをスキップする] チェックボックスをオンにし、ス キップしたいファイル中で使用されているタグを [ ファイル内容の正規表現] で指 定します。
- このタグを含むファイル中のコードをテストする場合、行フィルターの [ コード ブロック オプション] を使ってテストしたいセクションを指定しま す。
フィルターのヒントと例
ヒント
- Perl 形式の式を使用できます。
- 次のワイルド カードをサポートします。
* は、スラッシュ (/) を除く 0 個以上の文字と一致します。
? は、スラッシュ (/) を除いた任意の 1 個の文字と一致します。
** は、スラッシュ (/) も含めて 0 個以上の文字と一致します。** を使用する と、パス要素を指定できます。
- 次の要素の例がデフォルトでコード レビューの設定に追加されています。
- 拒否されるワイルドカード **/bin/**/*.properties
- 拒否される正規表現 (.*?/(bin|obj)(/x86|/x64){0,1}/(Debug|Release)/.*?\\.(dll|exe|pdb))$
正規表現を使って「差分」を表すことができます。たとえば、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 がサポートするソース管理システムでソース管理されているプロジェクトだけです。
- Test only files modified between working and ____ 開発者の作業ブランチ (ワークスペース内) と指定されたブランチ (または、オプションが有効な場合はデフォルトで検出された統合ストリーム) の間で変更されていないファイルをテスト対象から除外します。開発者の作業ストリームの親階層にある任意のストリームを指定できます。デフォルトの統合ストリームは、開発者の作業ストリームの親ストリームです。たとえば、
[Main] --- [Integration] --- [Developer]
というストリーム階層がある場合、Developer ストリームのデフォルトの統合ストリームは Integration です。現在、このオプションは SVN、AccuRev、ClearCase をサポートしています。 - 作成者オプション 指定の作成者条件に合わないコード行をテスト対象から除外します。次のオプションがあります。
- 作成者フィルターなし ファイル作成者に基づいてコード行をテスト対象から除外しません。
- ユーザーが作成した行だけをテスト 指定ユーザーが最後に変更したコード行だけをチェックします。複数のユーザーを指定するには、ユーザー名をカンマで区切って入力します。
- コード ブロック オプション 指定された開始マーカーと終了マーカーの間にあるコードだけを解析するよう、C++test を構成します。それには、[ カスタム開始/終了コメント ( 正規表現) を使用して解析対象をマークする ] チェックボックスをオンにし、テストするコード ブロックの開始と終了を表すマーカーを指定します。さらに、指定された開始/ 終了マーカーを含まないファイルをスキップするには、[マーカーのないファイルをスキップする] チェックボックスをオンにします。
注意
- コードの作成者情報と最終変更日は、[ スコープと作成者] の設定によって決まります。詳細については「タスクの割り当てとコード作成者の設定」を参照してください。