当前位置: 首页 > 知识库问答 >
问题:

Maven surefire插件和junit平台surefire provider for Java 9模块

廉实
2023-03-14

我有一个简单的JPMS模块。当我使用maven surefire插件2.20.1时,一切都正常-我的测试执行:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>1.3.0</version>
                    </dependency>
                </dependencies>
        </plugin>

但是,当我想使用更新版本的surefire(2.21.0或2.22.0)时,我会得到以下结果:

Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Command was /bin/sh -c cd "/home/project" && /opt/jdk-9/bin/java '@/home/project/target/surefire/surefireargs4438382394951202560' '/home/project/target/surefire' 2018-09-13T13-42-05_435-jvmRun1 surefire4870497011802680670tmp surefire_015850140770716473411tmp
Error occurred in starting fork, check output in log
Process Exit Code: 1
org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Command was /bin/sh -c cd "/home/project" && /opt/jdk-9/bin/java '@/home/project/target/surefire/surefireargs4438382394951202560' '/home/project/target/surefire' 2018-09-13T13-42-05_435-jvmRun1 surefire4870497011802680670tmp surefire_015850140770716473411tmp
Error occurred in starting fork, check output in log
Process Exit Code: 1
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:671)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:533)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:278)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:244)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1194)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1022)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:868)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
-> [Help 1]

在surefire的报道中,我看到了以下内容:

# Created at 2018-09-13T13:42:07.587
Error: Could not find or load main class Projects..home.project.m2.repository.org.eclipse.persistence.javax.persistence.2.2.0.javax.persistence-2.2.0.jar:.home.project..m2.repository.org.eclipse.persistence.org.eclipse.persistence.core.2.7.0.org.eclipse.persistence.core-2.7.0.jar:.home.project..m2.repository.org.slf4j.slf4j-api.1.7.25.slf4j-api-1.7.25.jar ...

# Created at 2018-09-13T13:42:07.588
Caused by: java.lang.ClassNotFoundException: /home/project//m2/repository/org/eclipse/persistence/javax/persistence/2/2/0/javax/persistence-2/2/0/jar:/home/project//m2/repository/org/eclipse/persistence/org/eclipse/persistence/core/2/7/0/org/eclipse/persistence/core-2/7/0/jar:/home/project//m2/repository/org/slf4j/slf4j-api/1/7/25/slf4j-api-1/7/25/jar ...

如何修复/解释它?这是窃听器还是我弄错了?

共有2个答案

西门良才
2023-03-14

使用直接支持JUnit 5的maven-surefire插件版本2.22.0.

另请参阅留档如何使用JUnit 5与Maven Surefire插件版本2.22.0...

  • https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit-platform.html
张森
2023-03-14

这是路径构建中的一个错误。看看这个问题和我对它的第一个评论。

 类似资料:
  • 问题内容: 我已经使用了tycho-eclipse-plugin-archetype中的原型来创建带有工作集成测试项目的简单Eclipse插件。除了…不是。 当我以“ JUnit插件测试”启动任何测试时,会出现以下异常: (以及其他插件的一些类似消息。) 这很奇怪,因为我的目标平台包含3.4.300,而不是3.4.500,它需要版本[3.3.0,4.0.0)。测试用例的运行配置与此版本一致,并证明

  • 从版本4.3.0开始,Cordova提供了保存和恢复平台和插件的能力。 这个特性允许开发者保存和恢复他们的app到一个已知的状态,而不用去检测所有平台和插件的源代码。 'save'命令存储app平台和插件的详细版本信息到config.xml里面。当一个'cordova prepare'命令发出,通过利用先前保存在config.xml里面的信息, 'restore'步骤就会自动执行。 下面场景,sa

  • 问题内容: 我在使用Eclipse Neon M7来使JUnit插件测试正常工作时遇到了一些问题,我真的很希望来自使用测试的任何人的输入(必须有人来,对吗?)。 每当我开始在Eclipse Luna中运行的测试(但在Mars中却没有,我认为这是一个错误)并且继续使用Tycho进行工作时,都会得到以下异常: 显然,这不是Eclipse错误,但我做错了。没有迹象表明测试中会启动哪种插件,但是从版本范围

  • 凭据对话框(Google表单)已成功打开,但在我填写凭据后,出现了此错误。我按照此处的说明进行了操作。创建了一个Firebase项目,从Google API控制台启用了Google Drive API(这就是我现在需要的)。 引发异常的代码: 这是堆栈跟踪: google_sign_in插件的版本是4.0.0。 这是颤振多克托 -v 的输出: 任何帮助将不胜感激。谢谢!

  • 我们希望您的IDE通过安全连接接收升级。不幸的是,这在Java6上不起作用,因此该选项被禁用。升级JRE后,您可以在“设置”中再次启用它。 通过->= 通过->= 通过->->=

  • 我最近升级到JUnit 5,我正试图通过JUnit jupiter vintage维护JUnit 4套件,使用提供的确切说明,您可以在任何地方找到示例。 注意,我使用的是离线构建,因为我必须这样做,所以虽然我可以下载我需要的任何Jar,但我并没有主动连接到任何maven存储库。 Gradle的版本是4.9,是所有的。zip发行版,不是安装了包,而是解压缩并添加到PATH变量中(这一点都不重要)。