このセクションの内容:

概要

ほとんどの DTP エクスプローラー (違反エクスプローラーカバレッジ エクスプローラーテスト エクスプローラー、および変更エクスプローラー) とリソース グループは、Ant スタイルのファイル パターンを使用してファイル パスと照合する検索をサポートしています。 ファイル パスはベース ディレクトリとパスの組み合わせで構成されます。モジュールではモジュール名とモジュール内のパスとなり、com.example/src/main/java/com/example/Foo.java のようになります。 ソース管理や URI など、他の場所にあるファイルも同様です。 検索時にファイル パターンを使用すると、正確な場所がわからない場合でも、探している対象を見つけやすくなります。

違反エクスプローラーとテスト エクスプローラーでは、ファイルの正確なパスが表示されます。

違反エクスプローラーでは、この情報は次の場所に表示されます。

  • 表の [ファイルパス] 列
  • [詳細] タブの [ファイルパス] フィールド

テスト エクスプローラーでは、この情報は次の場所に表示されます。

  • 表の [ファイルパス] 列
  • [詳細] タブの [場所] フィールド

ワイルドカード

ファイル パターンの利点の 1 つは、ワイルドカードを使用できることです。DTP がサポートするファイル パターンは Ant パターンに似ていますが、Ant の高度なマッチングの一部はサポートされていません。以下のワイルドカードがサポートされています。

  • "?" は、"/" を除く 1 文字に一致します。
  • "*" は、"/" を除く 0 個以上の文字に一致します。
  • "**" は、”/” で区切られた 0 個以上のディレクトリに一致します。

大文字と小文字の区別

ファイル パターンの一致で大文字と小文字を区別するかどうかは、データベース サーバーによって異なります。

  • MySQL: 大文字と小文字を区別しない
  • Oracle: 大文字と小文字を区別する
  • PostgreSQL: パターンにワイルドカードが含まれる場合、大文字と小文字を区別しません。ワイルドカードが含まれない場合は、大文字と小文字を区別します。

ファイル パターンの例

以下の表は、ファイル パターンの設定方法の例です。以下の表の例では違反エクスプローラーで違反を検索する場合を想定していますが、ファイル パターンは他のエクスプローラーでも同様に機能します。

ファイル パターン結果
com/parasoft/**

com/parasoft ディレクトリ ツリーで発見されたすべての違反を返します。例:

  • com/parasoft/dtp/SampleTest.java
  • com/parasoft/config.xml

しかし、以下は返しません。

  • com/example/schema.json
  • main/com/parasoft/example.txt
**/test/*.java

ディレクトリ ツリー中の任意の test ディレクトリにある、接尾辞が ".java" のファイルで発見されたすべての違反を返します。例:

  • test/Test.java
  • com/parasoft/dtp/test/SampleTest2.java

しかし、以下は返しません。

  • com/parasoft/dtp/test/examples/Example.java
  • com/parasoft/dtp/test/license.txt

パフォーマンス

ファイル パターンを作成するときは、複雑なパターンになるほど検索速度が遅くなることに注意してください。以下の表は、パターン タイプが検索速度にどのように影響するかを示しています。

パターン タイプ

最速

ワイルドカードを含まないパターン

com.parasoft.foo/src/main/com/parasoft/foo/Alpha1.java

Bar.java

速い

/** で終わるパターン

com.parasoft.foo/**

低速

その他のワイルドカードを使用するパターン

com.parasoft.foo/**/*.java

com.parasoft.foo/**/Alpha1.java

com.parasoft.foo/src/main/com/parasoft/foo/*.java

com.parasoft.foo/src/*/com/parasoft/foo/Alpha1.java

com.parasoft.foo/src/main/com/parasoft/foo/Alpha?.java

**/*.java

  • No labels