このセクションの内容
テスト スコープは、dotTEST で解析するファイルのセットを定義します。-solution
、-project
、および -website
オプションを使ってプライマリ テスト スコープを指定できます。 また、-
resource
、-include
、および -
exclude
オプションを使ってスコープを絞り込むことができます。ソリューションまたはプロジェクトをプライマリ スコープとして指定する場合は、ソリューションまたはプロジェクトの構成とターゲット ラットフォームを指定します。コマンドは次のようになります。
dottestcli.exe -solution "C:\Devel\FooSolution\FooSolution.sln" -solutionConfig Debug -targetPlatform "Any CPU" -config "builtin://Critical Rules" -report "C:\Report" |
-solution
: 解析するソリューションへのパスを指定します (同じコマンドラインで複数のソリューションを指定できます)。
-solutionConfig
: ソリューション構成を指定します。
-targetPlatform
: ターゲット プラットフォームを指定します。
-config
: 指定したテスト スコープで実行するテスト コンフィギュレーションを指定します。
IDE から解析を実行する場合、アクティブなエディターで開かれているソース ファイルは、ソリューション エクスプローラーで定義されたリソースより優先され、このファイルだけが解析されます。
resource
オプションによるスコープの変更-resource
オプションを使用してプライマリ スコープを絞り込み、次のいずれかを指定できます。
パスはソリューションに対する相対パスでなければなりません。Ant スタイルのワイルドカードを使用してリソースを指定できます。 ファイル システムに一致する絶対パスを指定したい場合は、「include
および オプションを使用したスコープの変更」 を参照してください。
dottestcli.exe -solution "C:\Devel\FooSolution\FooSolution.sln" -resource "FooSolution/QuxProject" -config "builtin://Demo" -report "C:\Report" |
dottestcli.exe -solution "C:\Devel\FooSolution\FooSolution.sln" -resource "FooSolution/BarProject/QuxDirectory" -config "builtin://Demo" |
dottestcli.exe -solution "C:\Devel\FooSolution\FooSolution.sln" -resource "FooSolution/BarProject/QuxDirectory/BazFile.cs" -config "builtin://Demo" |
dottestcli.exe -solution "C:\Devel\FooSolution\FooSolution.sln" -resource "FooSolution/BarSolutionFolder/QuxProject" -config "builtin://Demo" -report "C:\Report" |
-project
オプションは、ソリューションが提供されていない場合にのみ使用してください。ソリューションの名前が分からないため、ソリューション パスは /
で始まります。
dottestcli.exe -project "C:\Devel\FooSolution\FooProject.csproj" -resource "/FooProject/BarDirectory/QuxFile.cs" -config "builtin://Demo" -report "C:\Report" |
include
および exclude
オプションによるスコープの変更スコープにその他のフィルターを適用するには、-include
および -exclude
スイッチを使用します。
-include
スイッチは、ファイル システムのパスに一致するファイルだけをテストするよう指定します。その他のファイルはスキップされます。-exclude
スイッチは、ファイル システムのパスに一致するファイルを除き、プライマリ スコープ中の全ファイルをテストするよう指定します。Ant スタイルのワイルドカードを使用してリソースを指定できます。次のサンプルは、*.Tests
ディレクトリの下にあるすべてのファイルを除外する方法を示しています。
dottestcli.exe -solution "C:\Devel\FooSolution\FooSolution.sln" -exclude "C:\Devel\FooSolution\*.Tests\**\*.*" -config "builtin://Demo" -report "C:\Report" |
多数のファイルを -include/-exclude で指定する場合、リスト ファイル (*.lst) を作成し、そのリスト ファイルのパスを指定することもできます。*.lstファイルの各アイテムが個別のエントリとして扱われます。
解析対象プロジェクトの依存関係を解決するのに必要な追加のアセンブリへのパスを指定するには、-reference
スイッチを使用します。 ANT スタイルのワイルドカードおよび現在の作業ディレクトリからの相対パスを指定できます。
-reference C:\MySolution\ExternalAssemblies\*.dll -reference C:\MySolution\ExternalAssemblies\*.exe -reference C:\MySolution\ExternalAssemblies\**\*.dll -reference C:\MySolution\ExternalAssemblies\**\*.dll |
「Unable to find reference assembly」というメッセージが表示された場合、-reference
スイッチを使用してください。
追加のファイル フィルターをセットアップすることで、ローカルで変更されたファイルまたは現在の作業ブランチで変更されたファイルだけに解析範囲を制限できます。これにより、ソース管理システムにコードをチェックインしたり、メインの開発ストリームにコードをマージする前に、最近のコードの変更で入り込んだバグを検出し、修正する作業に集中できるようになります。
デフォルトのスコープを変更すると解析をスピードアップできるいっぽうで、プロジェクトに含まれる他のリソースの情報を必要とするルールのレポートする違反に影響を与える可能性があります。特に、実行パスを解析したり、メトリクスを計算したり、重複コードをチェックしたりするルールは、スコープから除外されたファイルにアクセスできない場合、違反を誤検出したり、違反を検出できない場合があります。 そのため、すべてのルール違反が検出されるよう、定期的に全体スコープでの解析を実行するよう推奨します。シナリオの例としては、デスクトップで dotTEST を実行するときは限定されたスコープで解析し、サーバーでの自動化されたビルド時に全体スコープの解析を行うことが考えられます。 |
scope.scontrol
=true
が設定され、ソース管理システムに基づいた作成者の算出が有効化されていること (「スコープと作成者の設定」を参照)解析のスコープをローカルで変更されたファイルだけに限定するには、.properties 設定ファイルに次のオプションを追加します。
scope.scontrol.files.filter.mode=local |
"master" や "trunk" などのメインの統合ストリームと異なっている現在の作業ブランチのファイルだけに解析のスコープを限定するには、.properties 設定ファイルに次のオプションを追加します。
scope.scontrol.files.filter.mode=branch |
作業ブランチとメインの統合ストリームではなく別のブランチを比較したい場合、または特定のリビジョンと比較したい場合は、参照として使用するブランチまたはリビジョンの名前または ID を指定する必要があります。次の設定は、カスタムブランチ/リビジョンと異なっている現在の作業ブランチのファイルに解析スコープを限定します。
scope.scontrol.files.filter.mode=branch scope.scontrol.ref.branch=[name/ID of the custom reference branch/revision] |
.properties ファイルで設定されたスコープ フィルター設定は、すべてのテスト コンフィギュレーションに影響を与えます。
「スコープと作成者の設定」を参照してください。
別の方法として、テスト コンフィギュレーションで追加のスコープ フィルターを定義することもできます。それには、カスタム テスト コンフィギュレーションを作成し、適用するフィルターを指定します。「カスタム テスト コンフィギュレーションの作成」を参照してください。GUI で設定されたスコープ フィルターは、特定のテスト コンフィギュレーションにだけ適用され、.properties
ファイルで設定されたスコープ フィルターによって上書きされます。