【问题标题】:How to create runnable jar for Selenium tests如何为 Selenium 测试创建可运行的 jar
【发布时间】:2020-05-18 18:56:14
【问题描述】:

我正在使用 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 测试?

【问题讨论】:

    标签: java selenium gradle junit5


    【解决方案1】:

    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....";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2021-05-24
      • 2020-12-02
      • 1970-01-01
      • 2012-12-02
      • 2016-07-09
      相关资源
      最近更新 更多