繁体   English   中英

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

[英]Java/Eclipse: How to configure Run Configuration's Classpath for JUnit test?

我有一个具有以下目录结构的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类从类路径上的任何位置读取其config(XML)文件,并使用它来配置其属性。

当我右键单击文件并转到Run As >> JUnit Test时,我只是想让WidgetTest的测试用例(全部用JUnit编写)在Eclipse中Run As >> JUnit Test 我认为我实际上必须使用具有自己配置的类路径的自定义运行配置来运行它,但是我不确定,因为我之前从未做过。

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

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

我的印象是,只要您在Eclipse认为是源文件夹的内部包含src/test/config/widget-test-config.xml ,它就应该已经在类路径中。

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

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

如是

那么这就是测试文件夹不在类路径中的问题,您可能想尝试像这样手动添加它。

右键单击WidgetTest,然后选择Run As -> Junit Test As- 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);
    }

}

上面的代码在一个简单的JAVA项目中为我工作,并且运行良好。 (运行良好意味着在控制台上打印“ true”)

我正在创建一个GITHub存储库,供您轻松尝试此代码。

具有测试项目的GIT Hub回购

您应该能够在 zip中导入项目,并查看代码工作。 右键单击Test类A ,然后单击Run As -> Junit Test ,您应该在控制台中看到两个true

如果您的WidgetTest类是作为JUnit测试编写的,则eclipse将尝试自动将其作为Junit测试运行。 如果不是,您应该右键单击包浏览器中的类,选择“运行方式” >>“运行配置” >>选择“ Junit”

要运行Junit测试:

  • 在JUnit3中,该类应实现TestCase,并且所有方法名称应以“ test”开头

  • 在JUnit4中,所有方法都应带有@Test批注

要将配置文件放置在类路径中:按上述设置运行配置时,请转到右上方窗格中的Arguments选项卡,然后在VM参数中指定类路径:

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

但是,如果该文件位于源目录的包中,则应将其自动包含在类路径中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM