使用主要资源的Scalatest,而不是测试资源

时间:2016-05-03 17:42:58

标签: java scala maven junit scalatest

我有一个使用Scala和Java代码的最新案例,并且在代码的Java部分内有一个调用:

getClass().getResourceAsStream("/dbLocations.properties");

这对于使用JUnit的代码的其他部分来说很好,但是我正在重写Scala测试类以使用Scalatest(有人用JUnit编写它们),并且当执行运行上面代码的测试时,属性就是它负载来自src / main / resources,而不是src / test / resources。

我缺少任何配置吗?我正在使用Maven,因为项目中有大量的Java部分(以及Maven对SBT的总体开发经验)。

2 个答案:

答案 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文件夹?