的Java / Eclipse的:如何配置运行配置的类路径JUnit测试?(Java/Eclipse

2019-06-27 03:29发布

我有以下目录结构的Eclipse项目:

MyProj/
    src/main/java/
        com.me.myproject.widgets
            Widget.java
    src/main/config
        widget-config.xml
    src/test/java
        com.me.myproject.widgets
            WidgetTest.java
    src/test/config
        widget-test-config.xml

Widget类读取它的配置(XML)从classpath中的任何地方文件中,并用它来配置它的属性。

我想只得到WidgetTest的测试用例(所有书面使用JUnit)以Eclipse内运行,当我用鼠标右键单击该文件,进入Run As >> JUnit Test 。 我想我还是得跑它作为自己的配置类路径的自定义运行配置 ,但我不知道这一点,因为我从来没有这样做过。

有谁知道我能得到一个定制的运行配置运行WidgetTest.java作为JUnit测试,并成功地将src/test/config/widget-test-config.xml的类路径? 提前致谢!

请注意,这个问题不是关于如何从运行时类路径中读取的资源,它对如何得到它的基于Eclipse的JUnit运行配置类路径摆在首位!

Answer 1:

我的印象是,只要你有下src/test/config/widget-test-config.xml里面有什么Eclipse中认为是源文件夹,它应该已经在类路径。

为src /测试Eclipse的源文件夹? 如果是,你仍然得到问题,请尝试以下实验:

如果小部件测试-config.xml文件复制到src根可Widget类看过吗?

如是

那么它是不是在classpath的测试文件夹的问题,你可能会想尝试手动添加它像这样。

右击WidgetTest并选择Run As -> Junit Test 。 这应该自动创建一个Junit的运行配置在访问Run -> Run Configurations 。 您可以修改它的类路径条目添加包含像这样的.xml文件的项目:

如果不

如果,连动.xml文件到src根(即默认包)后,窗口小部件类不能读它,然后还有别的东西错了。 在这种情况下,这将是巨大的,如果你能提供的代码WidgetTest这是试图读取.xml文件的片段。

工作守则

这里是有点工作代码:

public class A {

    @Test
    public void test() {
        InputStream stream = A.class.getResourceAsStream("/SomeTextFile.txt");
        System.out.println(stream != null);
        stream = Test.class.getClassLoader()
            .getResourceAsStream("SomeTextFile.txt");
        System.out.println(stream != null);
    }

}

以上为我工作在一个简单的Java项目,运行良好。 (运行良好手段得到“真”输出到控制台上)

我是在创造一个GitHub库,为您无痛尝试这个代码的过程。

GIT枢纽回购与测试项目

您应该能够导入项目在这个拉链,看到了代码工作。 右键点击Test类A ,然后点击Run As -> Junit Test ,你会看到两个true的控制台。



Answer 2:

如果您WidgetTest类写成一个JUnit测试时,Eclipse会尝试自动运行它作为一个JUnit测试。 如果没有,你应该右击在Package Explorer中的类,选择Run As >>运行配置>> Junit的选择

要运行JUnit测试:

  • 在JUnit3,类应该实现的TestCase和所有的方法名应该开始“测试”

  • 在JUnit4,所有的方法应该由@Test标注前面

要放置在类路径的配置文件:设置与上面运行配置时,请在右上窗格和VM参数指定的类路径中的参数标签:

   -cp .:/path/to/the/config/file 

但是,如果该文件是在源代码目录中包,它会自动包含在类路径中。



文章来源: Java/Eclipse: How to configure Run Configuration's Classpath for JUnit test?