Java 将多个JUnit类导出到单个可执行jar中
我正在尝试Java 将多个JUnit类导出到单个可执行jar中,java,junit,jar,Java,Junit,Jar,我正在尝试将JUnit类导出到1个可执行JAR。我不能这样做,因为它没有main 我尝试过的: 我试着制作一套测试套件,但效果并不理想。我可以从Eclipse运行JUnit类,也可以运行testingSuite——我告诉它,它调用了所有JUnit类——它们在Eclipse中工作得很好。注意,我不得不去JUnit4使用testingSuite。因为我也无法导出testingSuite,所以我尝试使用一个调用testingSuite的主方法创建一个新类,但我无法从Eclipse中运行该类 我已经经历
将JUnit类导出到1个可执行JAR
。我不能这样做,因为它没有main
我尝试过的:
我试着制作一套测试套件,但效果并不理想。我可以从Eclipse运行JUnit类,也可以运行testingSuite——我告诉它,它调用了所有JUnit类——它们在Eclipse中工作得很好。注意,我不得不去JUnit4使用testingSuite。因为我也无法导出testingSuite,所以我尝试使用一个调用testingSuite的主方法创建一个新类,但我无法从Eclipse中运行该类
我已经经历了大约2天的堆栈溢出和其他网站,所以现在我将发布=)
有人知道我如何将多个JUnit测试类导出到一个可执行的Jar中,当它打开时可以运行所有的类吗?如果你的目标是运行一些selenium测试,如果你的测试不是太大,为什么不使用(firefox插件和chrome) 这取决于您是否希望这些测试是可维护的和可进化的,但如果它们只是为了检查是否仍然有效,请尝试一下。此外,它将允许您的BA编写自己的测试。不需要了解编程,只需单击。有点 整个端到端测试的维护成本非常高,但如果你的应用程序在表面(UI)上没有太多变化,那么它可能是值得的
对于一篇关于一般测试(包括测试金字塔)的深入文章,请阅读,这篇文章非常好。我能够通过使用
常规类
调用my测试套件类
,调用myJUnit测试类
,使其正常工作。我不知道为什么以前它不起作用,但这次当我尝试导出时,有了一个新的选项
下面的解决方案
JUnit测试套件类(运行我放入@SuiteClasses的所有测试类,由“TestRunner”类调用) TestRunner类,导出到可执行jar中的类。这是缺失的一部分,没有它,出口将无法运作
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());
}
}
}
导出步骤
java-jarmyjarname.jar
我认为你把精力放错地方了。测试更大代码库的正确方法是使用构建系统。要有一个测试“目标”。去构建系统,测试所有人。其他人都是这样做的。你将要重新发明你自己的,功能要弱得多的轮子版本。不要这样。我用它进行回归测试,使用selenium。没有测试仪,所以我正在构建一个基本的测试套件,我们的BA(有时还有我)可以使用它可以在需要时运行。(我们目前所做的测试是,BA在网站上点击,然后你应该考虑在这里放置一个“非工作代码”"好吧,那就和我分享一个最简单的版本吧usl@GhostCatFTLOA,你为什么要这么做?我们不需要看到一堆JUnit测试用例,以及使它们通过所需的代码。是的,不会有太多的更改,如果有更改,它们将相差很远。BA足够了解编写简单的测试用例。它不会是一个comp复杂的测试工具,足以确保一切正常,当有新的东西(很少)时可以添加新的测试。
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());
}
}
}