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

时间:2018-08-17 11:44:10

标签: java testing junit

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

我看到了这篇帖子how to export (JUnit) test suite as executable jar,它建议添加一个main并从那里运行JUnit。 (我会对那条帖子发表评论,但并没有让我)

public static void main(String[] args) {
    JUnitCore.main("folder.package.testClass");
}

我用这个主要方法创建了一个新的Java类,但从未执行过测试类(从eclipse)。另外,如果我尝试导出项目,则会出现错误,并且无法导出。

出于将所有JUnit类导出到1个Jar文件并从那里运行的目的,最好的方法是什么?我可能会构建一个小菜单,用户可以在其中选择他们想要运行的测试类(我假设在某些地方需要主方法。...)。

2 个答案:

答案 0 :(得分:3)

您可以通过执行以下操作(仅检查当前情况)来执行测试:

  1. 创建新的Eclipse Java项目
  2. 在您的构建路径中添加junit和hamcrest jar(我正在使用 junit-4.12 hamcrest-core-1.3 )。它应该看起来:

enter image description here

  1. test 文件夹下创建测试:

    package com.example.junit5;
    
    import static org.junit.Assert.assertTrue;
    
    import org.junit.Test;
    
    public class FirstTest {
    
        @Test
        public void testTrue() {
            System.out.println("Executing testTrue()");
            assertTrue(true);     
         }
    }
    
  2. src 文件夹下创建您的main(executor)类:

    package com.example.junit5;
    
    import org.junit.runner.JUnitCore;
    
    public class Executor {
    
        public static void main(String[] args) {
            JUnitCore.main("com.example.junit5.FirstTest");
        }
    
    }
    
  3. Java应用程序的身份执行测试。 结果应为:

enter image description here

我的环境配置是:

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)

希望这会有所帮助

答案 1 :(得分:3)

以下代码最终对我有用。

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());
        }
    }
}