Java 如何将JUnit测试用例导出到可执行文件.jar中?

Java 如何将JUnit测试用例导出到可执行文件.jar中?,java,testing,junit,Java,Testing,Junit,我正在使用Selenium和JUnit自动化一些测试。我希望能够将其导出到一个可运行的jar文件中。我不能,我假设是因为没有主方法,JVM不知道运行什么 我看到这篇文章,它建议添加一个main并从那里运行JUnit。(我可能会对这篇文章发表评论,但它不允许我通过执行以下操作来执行测试(只检查了当前场景): 创建新的EclipseJava项目 将junit和hamcrest JAR添加到构建路径中(我使用的是junit-4.12和hamcrest-core-1.3) 在测试文件夹下创建测试:

我正在使用Selenium和JUnit自动化一些测试。我希望能够将其导出到一个可运行的jar文件中。我不能,我假设是因为没有主方法,JVM不知道运行什么


我看到这篇文章,它建议添加一个main并从那里运行JUnit。(我可能会对这篇文章发表评论,但它不允许我通过执行以下操作来执行测试(只检查了当前场景):

  • 创建新的EclipseJava项目
  • 将junit和hamcrest JAR添加到构建路径中(我使用的是junit-4.12和hamcrest-core-1.3)
  • 在测试文件夹下创建测试:

  • 在src文件夹下创建主(执行器)类:

  • 作为Java应用程序执行测试。结果应为:

  • 我的环境配置是:

    java version "1.8.0_151"
    Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
    

    希望这会有所帮助

    以下代码最终对我有用

    package myPackageName;
    
    import org.junit.runner.JUnitCore;
    import org.junit.runner.Result;
    import org.junit.runner.notification.Failure;
    
    public class testRunner {
        public static void main(String[] args) {
            Result result = JUnitCore.runClasses(AllTests.class);
            for (Failure failure : result.getFailures()) {
                System.out.println(failure.toString());
            }
        }
    }
    

    这可能是导出错误的原因。首先,确保您正在创建有效的可执行jar(带有一些打印行等)它也不是从eclipse运行的。但是导出不起作用,我知道这是brokenlet关注的执行问题。我相信你肯定问题就在这里。是的,我厌倦了上面的代码,我也尝试了这里提供的Java类运行的代码,但它从不访问JUnit类,也从不运行它。链接中提供的示例要求让您指向一个测试套件类而不是包。是“folder.package.testClass”吗?是指向测试套件类的路径吗?
    java version "1.8.0_151"
    Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
    
    package myPackageName;
    
    import org.junit.runner.JUnitCore;
    import org.junit.runner.Result;
    import org.junit.runner.notification.Failure;
    
    public class testRunner {
        public static void main(String[] args) {
            Result result = JUnitCore.runClasses(AllTests.class);
            for (Failure failure : result.getFailures()) {
                System.out.println(failure.toString());
            }
        }
    }