java - 使用主要资源而不是测试资源进行 Scalatest

标签 java scala maven junit scalatest

我有一个同时使用 Scala 和 Java 代码的 scalatest 案例,并且在代码的 Java 部分中调用了:

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

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

我是否缺少任何配置?我之所以使用 Maven,是因为该项目包含大量 Java 部分(以及 Maven 而非 SBT 的总体开发人员体验)。

最佳答案

这最终是一个 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>

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

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

关于java - 使用主要资源而不是测试资源进行 Scalatest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37010879/

相关文章:

java - 试图在 Java 中初始化 Scala 创建的类

scala - Spark Scala数据框udf返回行

Scala foreach 奇怪的行为

maven - 从命令行覆盖 Maven 插件版本?

java - 如何从struts中的java Action 调用url?

Java - 使用另一个类的变量作为方法参数

java - 如何在 Vaadin 中获取当前 View 名称

android - 如何为 socket.io-client.java 构建 Android 测试代码

java - 使用 maven 损坏 zip 中的 JARS

java - 尝试执行表单验证时出现错误