当前位置: 首页 > 知识库问答 >
问题:

在Maven多模块项目的JUnit测试中找不到资源

柳联
2023-03-14

我使用的是Maven 3.0.3、JUnit 4.8.1和Java1.6。我在JUnit测试文件中有这个...

@Before
public void loadTestProps() throws IOException, GeneralSecurityException { 
    final InputStream in = getClass().getClassLoader().getResourceAsStream("test.properties");
    testProps = new Properties();
    testProps.load(in);

未拾取“test.properties”(输入流对象为空)。我的项目结构如下:

parent+---pom.xml
+----war模块
+------pom.xml
+------src/test/java/junit文件
+------src/test/resources/test.properties
+----ear模块
+------pom.xml

我更愿意将我的“src/test/resources”目录保留在我的WAR模块中,因为测试只涉及WAR文件。有没有一种方法我可以重写上面的Java来找到我的“test.properties”或者我必须将文件移出WAR模块?

共有1个答案

云焱
2023-03-14

而不是getResourceStream(“test.properties”);您应该使用getResourceStream(“/test.properties”);

 类似资料:
  • 我们的项目结构如下: 相关的JUnit测试位于A-A中。在使用Maven之前,我们必须调整Eclipse中的运行配置(将arguments选项卡中的工作目录设置为A-B,启动应用程序),以便在没有错误的情况下启动所有测试。 现在,当我们尝试运行测试时,无论我们是否在Eclipse中运行测试,我们都会从a-a中的类中得到一个 我的猜测是我们有一个错误的配置的POM和Surefire不能找到所有的类文

  • 我似乎无法让Maven在多模块项目中找到兄弟姐妹的模块。 我已经在所有模块中运行了。 下面是MagnicCompCommon 下面是Model

  • 我有一个maven多模块项目。其中一个模块(编译为.jar)只包含域对象,这些对象将在客户端和服务器端使用(我将这个.jar添加为我的其他模块的依赖项)。 我知道GWT模块,其中将使用来自共享<代码>的对象。jar还必须有源文件才能成功编译。所以我尝试添加到我的pom中。xml两者: 和 但结果是<代码>。jar不包含GWT模块源代码(即GWT.xml)。也会添加域类的所有源(位于

  • 我有根项目,然后是子模块。这些模块是相互依赖的,当我为一个模块运行maven测试时,它会抛出类未找到异常。 ProjectA --ProjectSubA --ProjectSubB --ProjectSubC(依赖项ProjectA和ProjectB) ProjectSubC有Maven测试,所以当它运行时,类在ProjectSubB和ProjectSubA中。现在如何解决这个问题。

  • 我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处

  • 如何在导入到另一个模块的jar中包括测试目录(src/test/)下的Spring bean? 我有几个Maven项目: ms1、ms2、ms3和通用共享。通用共享是一个多模块的Maven项目。它包含几个模块:通用共享utills、通用共享fs等... 在每个子模块中,我都有一个专用的pom。xml以及所需的所有依赖项,在通用共享pom中,我有关于构建和模块的详细信息: 似乎我为子模块中的测试(位