Maven Surefire:启动分叉时发生错误

Fra*_*anz 3 junit maven maven-surefire-plugin

当我试图跑步时

测试

我总是收到错误消息,maven-surefire 错误发生在 fork 中。这与我的本地设置有关,在我同事的 PC 上它工作正常。我希望有人知道我的电脑出了什么问题:)

错误信息的一部分:

  1. [错误] 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project practice00-assignment01: 启动 fork 时发生错误,检查日志中的输出 -> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute target org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project execution00-assignment01: Error发生在开始分叉,检查日志中的输出

  2. Caused by:
        org.apache.maven.surefire.booter.SurefireBooterForkException: Error
        occurred in starting fork, check output in log
            at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork
        (ForkStarter.java:284)
    
    Run Code Online (Sandbox Code Playgroud)

我使用的是 win10,jdk:1.8.0_202,maven:3.6.0

我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>at.tuwien.swtesting</groupId>
    <artifactId>exercise00-assignment01</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>jar</packaging> 

    <name>01-RingBufferTest</name>
    <description>Entry exercise.</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>  
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.12</version>  
            <scope>test</scope>  
        </dependency>  
    </dependencies>

</project>
Run Code Online (Sandbox Code Playgroud)

小智 8

我最近陷入了同样的问题。经过大量研究,我低于分辨率

ForkCount 应设置为“0”

将您的 pom 文件更新为:-

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
        <forkCount>0</forkCount>
        <suiteXmlFiles>`enter code here`
        <suiteXmlFile>testng.xml</suiteXmlFile>
        </suiteXmlFiles>
        </configuration>
    </plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)


Fra*_*anz 1

所以我将以下代码添加到我的 pom.xml 中

<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.0.0-M3</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
Run Code Online (Sandbox Code Playgroud)

错误消息已更改:

[错误] 请参阅转储文件(如果存在)[日期].dump、[日期]-jvmRun[N].dump 和 [日期].dumpstream。[错误] 启动 fork 时发生错误,检查日志中的输出 [错误] org.apache.maven.surefire.booter.SurefireBooterForkException:启动 fork 时发生错误,检查 org.apache.maven.plugin 的日志 [错误] 中的输出。 Surefire.booterclient.ForkStarter.fork(ForkStarter.java:623) [错误] 在 org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:283) [错误] 在 org.apache.maven。 plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:246)

编辑

我终于找到了我的问题,在我的文件夹路径中有一个“&”,而Windows无法处理它。这就是不同错误消息的原因