您有 2 个选项:
1)通过系统属性(docs)将文件路径传递给您的测试
在您的 pom 中,您可以执行以下操作:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<systemProperties>
<property>
<name>filePath</name>
<value>/path/to/the/file</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
然后在您的测试中,您可以执行以下操作:
System.getProperty("filePath");
2)将文件放在与测试类相同的包下的 src/test/resources 中。然后您可以使用 Class.getResourceAsStream(String fileName) ( docs ) 访问该文件。
我强烈推荐选项 2 而不是选项 1。通过系统属性将内容传递给您的测试是非常肮脏的 IMO。它将您的测试不必要地与测试运行者结合起来,并且会在未来引起头痛。从类路径中加载文件是可行的方法,这就是 maven 具有资源目录概念的原因。