junitperf icon indicating copy to clipboard operation
junitperf copied to clipboard

怎么命令行执行

Open poiu72 opened this issue 4 years ago • 2 comments

poiu72 avatar Jul 25 '21 05:07 poiu72

这个应用设计的时候是为了写 junit 测试的开发者设计的。命令行执行的具体场景?

houbb avatar Jul 25 '21 05:07 houbb

这个应用设计的时候是为了写 junit 测试的开发者设计的。命令行执行的具体场景?

pom.xml add: ` <groupId>com.github.houbb</groupId> <artifactId>junitperf</artifactId> 2.0.7

	<!-- 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

Andyfoo avatar Dec 28 '23 06:12 Andyfoo