我試圖通過LauncherDiscoveryRequest
作爲described in the user guide來發現JUnit 5測試。通過LauncherDiscoveryRequest發現提供的類路徑上的測試
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
一些幫助某人有關... https://stackoverflow.com/questions/46329888/discovering-test-with -junit-5 - 不要 - 執行 - logginglistener的實現-的-T – Sergio