Java/Eclipse:如何为JUnit测试配置Run Configuration的Classpath?

IAm*_*aja 1 java eclipse junit classpath

我有一个具有以下目录结构的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
Run Code Online (Sandbox Code Playgroud)

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

WidgetTest当我右键单击该文件并转到时,我正试图在Eclipse中运行测试用例(所有用JUnit编写)Run As >> JUnit Test.我假设我必须实际运行它作为具有自己配置的类路径的自定义运行配置,但我不确定,因为我以前从未这样做过.

有没有人知道如何让自定义运行配置WidgetTest.java作为JUnit测试运行,并成功放在src/test/config/widget-test-config.xml类路径上?提前致谢!

请注意,这个问题不是关于如何从运行时类路径中读取资源,而是关于如何在Eclipse的JUnit Run Config类路径中获取它!

Ash*_*dal 7

我的印象是,只要你有src/test/config/widget-test-config.xmlEclipse认为是源文件夹的内部,它应该已经在类路径上.

src/test是Eclipse的源文件夹吗?如果是,但您仍然遇到问题,请尝试以下实验:

如果将widget-test-config.xml复制到src根目录,Widget类可以读取吗?

如是

那么这是一个测试文件夹不在类路径上的问题,你可能想尝试手动添加它.

右键单击WidgetTest并选择Run As -> Junit Test.这应该会自动创建一个可访问的Junit运行配置Run -> Run Configurations.您修改它的Classpath条目以添加包含.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);
    }

}
Run Code Online (Sandbox Code Playgroud)

以上对我来说在一个简单的JAVA项目中运行良好.(正常运行意味着在控制台上打印'true')

我正在为你创建一个GITHub repo,以便轻松地试用这个代码.

GIT Hub Repo与测试项目

您应该能够在 zip中导入项目并查看代码是否正常工作.右键单击Test类A并单击Run As -> Junit Test,您应该true在Console中看到两个.