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>
在我看来似乎有点老套,但它确实有效!
我有一个使用 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>
在我看来似乎有点老套,但它确实有效!