我正在尝试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在打开时可以运行所有类吗?
答案 0 :(得分:0)
如果您的目标是运行一些硒测试,并且您的测试不太大,为什么不使用selenium ide(firefox插件,而here用于chrome)?
这取决于您是否希望这些测试能够维护和改进,但是如果只是为了检查事情是否仍然有效,请尝试一下。另外,它将允许您的BA编写自己的测试。无需了解编程,只需单击。
整个端到端测试工作维护起来非常昂贵,但是如果您的应用程序在表面(UI)上的演变不大,那么它可能是值得的。
要深入了解有关测试的一般文章,包括测试金字塔,请阅读this by Martin Fowler,非常好。
答案 1 :(得分:0)
我能够通过叫regular class
叫Test 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 {
}
导出步骤
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());
}
}
}
。