Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将多个JUnit类导出到单个可执行jar中_Java_Junit_Jar - Fatal编程技术网

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
测试套件类
,调用my
JUnit测试类
,使其正常工作。我不知道为什么以前它不起作用,但这次当我尝试导出时,有了一个新的选项

下面的解决方案


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