我正在使用 JUnit 5 和 Selenium 进行测试。
我需要创建一个 jar 文件,该文件在执行时会打开浏览器并执行测试用例。
我从这个视频中发现:How to Create Runnable Jar File From Selenium Project
使用 TestNG 您可以创建一个对象,设置所需的测试类并运行测试类,但我还没有找到使用 JUnit5 执行此操作的等效方法
我知道使用 JUnit 平台启动器,您可以使用以下代码运行测试,但这在执行 jar 文件时不起作用,因为 JUnit 任务本身不执行测试,只捕获输出。至少那是我从 JUnit Launcher Task 中读到的内容
public class TestExecutor {
public static void main(String args[]) {
final LauncherDiscoveryRequest request =
LauncherDiscoveryRequestBuilder.request()
.selectors(selectClass(MyTest.class))
.build();
final Launcher launcher = LauncherFactory.create();
launcher.execute(request);
}
}
有没有办法创建一个可执行的 jar 文件来打开浏览器并执行 selenium 测试?
最佳答案
1.实现一个任务计时器。(没有代码,也许使用quaze)
2.实现一个web到手动触发。(使用springboot webmvc)
import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;
import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
import org.junit.platform.launcher.listeners.TestExecutionSummary;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.FileNotFoundException;
import static org.junit.platform.engine.discovery.ClassNameFilter.includeClassNamePatterns;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectPackage;
@RestController
@RequestMapping("/excutor")
public class ExcutorContrller {
@GetMapping("/")
public String excute(String packageName, String className) throws FileNotFoundException {
new Thread(() -> {
System.out.println(packageName + "======" + className);
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder
.request()
.selectors(
selectPackage(packageName)
// selectClass(com.wusuiwei.cases.JunitTest.class)
)
.filters(
includeClassNamePatterns(".*Test")
)
.build();
Launcher launcher = LauncherFactory.create();
// Register a listener of your choice
SummaryGeneratingListener listener = new SummaryGeneratingListener();
launcher.registerTestExecutionListeners(listener);
launcher.execute(request);
TestExecutionSummary summary = listener.getSummary();
System.out.println(summary);
// Do something with the TestExecutionSummary.
});
return "excuting....";
}
}
关于java - 如何为 Selenium 测试创建可运行的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61876963/