我有一个使用Scala和Java代码的最新案例,并且在代码的Java部分内有一个调用:
getClass().getResourceAsStream("/dbLocations.properties");
这对于使用JUnit的代码的其他部分来说很好,但是我正在重写Scala测试类以使用Scalatest(有人用JUnit编写它们),并且当执行运行上面代码的测试时,属性就是它负载来自src / main / resources,而不是src / test / resources。
我缺少任何配置吗?我正在使用Maven,因为项目中有大量的Java部分(以及Maven对SBT的总体开发经验)。
答案 0 :(得分:1)
它最终成为Maven问题,我本地Maven回购中的依赖JAR(我有源代码)中有生产值。我现在使用maven-jar-plugin为该依赖创建一个测试jar:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
然后将其作为依赖项包含在另一个项目中,并将范围设置为&#39; test&#39;,因此测试jar只在我测试的类路径上,意识到放置测试-jar首先在类路径中,这样当它们同时在它上面时,测试资源会在检测到其他(生产)JAR之前被拉入:
<dependency>
<groupId>com.example</groupId>
<artifactId>naughty-dependency</artifactId>
<version>1.0.5-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>naughty-dependency</artifactId>
<version>1.0.5-SNAPSHOT</version>
</dependency>
在我的脑海中似乎有点hacky但它确实有效!
答案 1 :(得分:0)
据我所知,它应该按原样运作。
您是否检查了maven文件以查看某些pom
配置是否排除了测试类路径中的src/test/resources
文件夹?