猿问

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

我正在努力export JUnit classes into 1 executable JAR。我不能这样做,因为它没有main.

我尝试过的:

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

我已经浏览了 Stack Overflow 和其他网站大约 2 天了,所以现在我将发布 =)。

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


梦里花落0921
浏览 232回答 2
2回答

慕的地8271018

我能够通过regular class调用 my来使其工作,Test Suite Class该调用调用了 my JUnit Test Classes. 我不知道为什么它以前不起作用,但是这次当我尝试导出时,那里有一个新选项。下面的解决方案JUnit 测试套件类(运行我放入@SuiteClasses 的所有测试类,由“TestRunner”类调用)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 {    }TestRunner Class,导出到可执行 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文件夹,点击'Runnable JAR file',点击下一步启动配置下拉菜单显示了一个选项“myPackageName - TestRunner”。这是我能够选择包含将由 JAR 运行的主要方法的类的地方。(我之前遇到的问题,它不存在,如果我选择了其他出现的类,它会出现导出错误)。我使用“将所需的库打包到生成的 JAR 中”选项进行库处理,我认为它是正确的,因为我有 selenium 库。单击完成通过打开 Windows 资源管理器并单击它来运行 JAR。或者,打开 CMD,cd 到文件目录,然后运行java -jar myJarName.jar.

慕斯709654

如果你的目标是运行一些 selenium 测试并且你的测试不是太大,为什么不使用selenium ide(firefox 插件,这里是 chrome)?这取决于您是否希望这些测试具有可维护性和进化性,但如果它们只是为了检查事情是否仍然有效,请尝试一下。此外,它还允许您的 BA 编写自己的测试。无需了解编程,只需点击即可。有点。整个端到端测试的维护成本非常高,但如果您的应用程序在表面(其 UI)上没有太多发展,那么它可能是值得的。有关一般测试的深入文章,包括测试金字塔,请阅读Martin Fowler 的这篇文章,非常好。
随时随地看视频慕课网APP

相关分类

Java
我要回答