Open poiu72 opened 3 years ago
这个应用设计的时候是为了写 junit 测试的开发者设计的。命令行执行的具体场景?
pom.xml add: `
<!-- JUnit5单元测试框架 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.10.1</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-commons</artifactId>
<version>1.10.1</version>
</dependency>
<!-- 如果需要使用 JUnitPlatform Launcher API -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.10.1</version>
</dependency>`
Junit5TestPackageRunner.java ` import org.junit.platform.engine.discovery.ClassNameFilter; import org.junit.platform.engine.discovery.DiscoverySelectors; import org.junit.platform.launcher.Launcher; import org.junit.platform.launcher.LauncherDiscoveryRequest; import org.junit.platform.launcher.TestPlan; import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder; import org.junit.platform.launcher.core.LauncherFactory;
import lombok.extern.slf4j.Slf4j;
@Slf4j public class Junit5TestPackageRunner extends Junit5Runner implements Runnable { private final String packageName;
public Junit5TestPackageRunner(String packageName) {
this.packageName = packageName;
}
public void run() {
log.info("Starting the package runner");
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
.selectors(DiscoverySelectors.selectPackage(packageName))
.filters(ClassNameFilter.includeClassNamePatterns(".*Tests"))
.build();
Launcher launcher = LauncherFactory.create();
TestPlan plan = launcher.discover(request);
launcher.registerTestExecutionListeners(getDefaultListener());
launcher.execute(request);
}
}`
Junit5Runner.java `import java.util.List;
import org.junit.platform.launcher.TestExecutionListener; import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
public abstract class Junit5Runner { private List<Class<?>> listeners;
public TestExecutionListener getDefaultListener() {
return new SummaryGeneratingListener();
}
public void setListeners(List<Class<?>> listeners) {
this.listeners = listeners;
}
}`
AppMain.java ` import app.core.junit.Junit5TestPackageRunner;
public class AppMain { public static void main(String[] args) { new Junit5TestPackageRunner("app.tests").run();
}
} `
打包后执行 jar中的 AppMain
这个应用设计的时候是为了写 junit 测试的开发者设计的。命令行执行的具体场景?