将多个JUnit类导出到单个可执行jar中

时间:2018-08-20 19:09:51

标签: java junit jar

我正在尝试export JUnit classes into 1 executable JAR。我无法执行此操作,因为它没有main

我尝试过的事情:

我尝试制作一个testingSuite,但是效果不佳。我可以从Eclipse运行JUnit类,也可以运行testingSuite-它也调用了我告诉过的所有JUnit类-它们在Eclipse中可以正常工作。注意,我必须使用JUnit4才能使用testingSuite。由于我也无法导出testingSuite,因此我尝试使用一个称为testingSuite的主要方法来制作一个新类,因此无法从Eclipse运行它。

我已经经历了大约2天的Stack溢出和其他站点,所以现在我将发布=)。

任何人都知道如何将多个JUnit测试类导出到1个可执行的Jar中,该jar在打开时可以运行所有类吗?

2 个答案:

答案 0 :(得分:0)

如果您的目标是运行一些硒测试,并且您的测试不太大,为什么不使用selenium ide(firefox插件,而here用于chrome)?

这取决于您是否希望这些测试能够维护和改进,但是如果只是为了检查事情是否仍然有效,请尝试一下。另外,它将允许您的BA编写自己的测试。无需了解编程,只需单击。

整个端到端测试工作维护起来非常昂贵,但是如果您的应用程序在表面(UI)上的演变不大,那么它可能是值得的。

要深入了解有关测试的一般文章,包括测试金字塔,请阅读this by Martin Fowler,非常好。

答案 1 :(得分:0)

我能够通过叫regular classTest Suite Class来使它工作。我不知道为什么以前不起作用,但是这次我尝试导出时,那里有一个新选项。

以下解决方案


JUnit测试套件类(运行我放入@SuiteClasses中的所有测试类,由“ TestRunner”类调用)

JUnit Test Classes

TestRunner类,即导出到可执行jar中的类。这是缺少的部分,没有它,导出将无法进行。

package myPackageName; 

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ TestClass1.class, TestClass2.class })
public class AllTests {    
}

导出步骤

  1. 单击文件,单击导出
  2. 打开Java文件夹,单击“可运行的JAR文件”,然后单击下一步
  3. “启动配置”下拉列表显示一个选项“ myPackageName-TestRunner”。在这里,我可以选择包含将由JAR运行的主要方法的类。 (我以前遇到过的问题不存在,如果我选择了其他出现的类,则会导致导出错误。)
  4. 我使用了“将所需的库打包到生成的JAR中”选项进行库处理,我认为它是正确的,因为我有硒库。
  5. 单击完成
  6. 通过打开Windows资源管理器并单击运行JAR。或者,打开CMD,cd到文件目录,然后运行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()); } } }