微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Maven 忽略构建测试

如何解决Maven 忽略构建测试

目前正在尝试测试一个项目,但由于某种原因,它在使用 mvn clean install 时不会运行测试。但奇怪的是,右键单击该项目并在 Intellij 上执行 Run 'All Tests',可以很好地运行所有测试。

文件夹名为 test,测试在它们正在测试的类的名称添加一个 Test。我在 POM 文件中设置了这个配置:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <release>11</release>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
            </plugin>

Java 版本设置如下:<java.version>11</java.version>

并且 junit 依赖项设置如下:

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
            <type>jar</type>
        </dependency>

这将导致:

[INFO] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ ******* ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0,Failures: 0,Errors: 0,Skipped: 0

通常我什至不需要在 plugins 标签添加 maven-surefire-plugin,虽然我这样做是为了指定版本,也许这可能有帮助,但没有用。

知道可能是什么问题吗?

更新 1:

为surefire插件添加了一些配置:<useModulePath>false</useModulePath>

来自 mvn -X test 的日志:https://controlc.com/0e9faba9

解决方法

是的,我们在surefire 3.0.0-M5(使用JDK 9+且未使用JPMS时)中存在错误,但我们在Stackoverflow上多次发布了解决方法。

请使用临时解决方法检查一下

mvn test -Dsurefire.useModulePath=false

修复已经完成,将在 3.0.0-M6 版本中发布。那里不再需要解决方法 useModulePath=false

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。