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

Scalatest using main resources, not test resources

我有一个使用 Scala 和 Java 代码的 scalatest 案例,在代码的 Java 部分有一个调用:

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

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

我是否缺少任何配置?我使用 Maven 是因为项目的 Java 部分很大(并且开发人员对 Maven 的总体体验优于 SBT)。

据我所知,它应该可以正常工作。

您是否检查了 maven 文件以查看某些 pom 配置是否从测试类路径中排除了 src/test/resources 文件夹?

它最终成为一个 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>

然后将其作为依赖项包含在另一个项目中,范围设置为 'test',因此测试 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>

在我看来似乎有点老套,但它确实有效!