ユーザー ガイドに記載されているように、LauncherDiscoveryRequest
の助けを借りて JUnit 5 テストを検出しようとしています。私が使用しているコードは次のようになります。
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
.filters(includeClassNamePatterns(".*"))
.build();
TestPlan plan = LauncherFactory.create().discover(request);
for (TestIdentifier root : plan.getRoots()) {
System.out.println("Root: " + root.toString());
for (TestIdentifier test : plan.getChildren(root)) {
System.out.println("Found test: " + test.toString());
}
}
LauncherDiscoveryRequestBuilder
このコードを実行している JVM のクラスパスでのみテストを自動検出しますか? テストクラスを検索するルートディレクトリを提供するために、メソッドDiscoverySelectors.selectClasspathRoots
とセレクターを使用してみました。DiscoverySelectors.selectClasspathResource
ただし、テストを発見することはできませんでした。のパラメーターはselectClasspathRoots
、selectClasspathResource
パッケージごとに編成されたクラス ファイルを含むルート ディレクトリを指す必要がありますか?それとも、各テスト クラス ファイルへのフル パスを指定しますか?
/some/dir
テストクラスファイルを含むルートディレクトリを表す次のことを試しました:
File classesDir = new File("/some/dir");
LauncherDiscoveryRequestBuilder.request()
.selectors(selectClasspathRoots(Collections.singleton(Paths.get(classesDir.toURI()))))
.build();
私は見ましLauncherDiscoveryRequestBuilderTests.java
たが、サンプルコードが機能しない理由を理解するのにあまり役に立ちませんでした. 問題を最もよく診断するにはどうすればよいですか?
次の依存関係を使用しています。
org.junit.platform:junit-platform-engine:1.0.0-M3
org.junit.platform:junit-platform-launcher:1.0.0-M3