首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载maven-surefire-plugin的属性文件

加载maven-surefire-plugin的属性文件
EN

Stack Overflow用户
提问于 2011-08-20 09:15:23
回答 2查看 5.7K关注 0票数 1

我有一个testng类,它测试一个类,这个类依次从classpath.When加载属性,我运行maven安装,我收到了一个错误,提到了一个文件,而不是found.It无法找到属性文件,尽管我在src/test/resources中有它。如何解决这一问题?

java代码有一个构造函数,该构造函数试图加载属性文件Properties props = JobUtils .loadProperties("x.properties"); maven配置:

代码语言:javascript
复制
<plugin>
  <groupId>org.apache.maven.plugins
  <artifactId>maven-surefire-plugin
  <version>2.5
  <configuration>
    <skipTests>false</skipTests>
  </configuration>
</plugin>

通过以下方式:

代码语言:javascript
复制
<build>
  <testResources>
    <testResource>
      <directory>src/test/resources</directory>
      <filtering>false</filtering>
    </testResource>
  </testResources>
</build>

我还有这个x.properties in src/test/resource

运行TestSuite的堆栈跟踪是:

代码语言:javascript
复制
java.io.FileNotFoundException: x.properties (The system cannot find the file specified)
   at java.io.FileInputStream.open(Native Method)
   at java.io.FileInputStream.(FileInputStream.java:106)
   at java.io.FileInputStream.(FileInputStream.java:66)

还要注意我尝试实例化这个java代码并测试它的测试类。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-20 10:37:42

在执行Maven x.properties阶段之后,实际上正在将来自src/test/resources目录的target/test-classes文件复制到target/test-classes目录中。因此,如果您希望您的应用程序能够找到它,您应该使用以下文件路径:

代码语言:javascript
复制
Properties props = JobUtils .loadProperties("target/test-classes/x.properties");

然而,我不认为这正是你想要的。我建议使用如下代码直接从CLASSPATH读取属性文件(不直接使用文件系统):

代码语言:javascript
复制
InputStream is = getClass().getResourceAsStream("/x.properties");
Properties p = new Properties();
try {
  p.load(is);
} catch (IOException e) {
  e.printStackTrace();
} finally {
  if (is != null) {
    try {
      is.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

使用这种方法,您将能够加载属性文件,即使在分发给客户的JAR文件中,也可以从以某种启动脚本方式添加到CLASSPATH的配置文件中加载。

票数 3
EN

Stack Overflow用户

发布于 2012-12-28 20:19:21

我也有一个文件找不到的问题。然而,当我在命令行上运行mvn测试时,我意识到maven找到了它。这只是我的Eclipse告诉我找不到的。当我将IDE目录src/test/resources更改为“源目录”时,我的IDE也很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7130857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档