带有 azure 管道的 maven 故障安全会出错

问题描述

我使用黄瓜创建了一个 api 测试项目。当我使用 Intellij 和命令 mvn clean verify -P acceptanceTests 运行项目时,它运行良好。但是当我在 azure 管道中运行它时,我收到此错误

Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:3.0.0-M5:verify (verify) on project com.test: There are test failures.
[ERROR] 
[ERROR] Please refer to /home/vsts/work/1/s/target/failsafe-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump,[date]-jvmrun[N].dump and [date].dumpstream.
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/vsts/work/1/s && /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/java -javaagent:/home/vsts/.m2/repository/org/aspectj/aspectjweaver/1.9.1/aspectjweaver-1.9.1.jar @/home/vsts/work/1/s/target/surefire/surefireargs12930524259006620681 /home/vsts/work/1/s/target/surefire 2021-03-24T20-45-21_548-jvmrun1 surefire2852794554623212644tmp surefire_01307379121946876339tmp
[ERROR] Error occurred in starting fork,check output in log

这里是管道 yml

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
  
- task: JavaToolInstaller@0
  inputs:
      versionSpec: '11'
      jdkArchitectureOption: 'x64'
      jdkSourceOption: 'PreInstalled'

- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
    mavenoptions: '-Xmx3072m'
    #javaHomeOption: 'JDKVersion'
    #jdkVersionoption: '1.11'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/failsafe-reports/*.dump'
    goals: 'clean verify -P acceptanceTests -e '

我尝试搜索但找不到任何指针。我该如何调试?我试图通过上面的 .dump 查看 '**/failsafe-reports/*.dump' 文件,但我不确定如何或它是否正确

解决方法

经过一些故障排除后发现,从 pom.xml 中删除不需要/未使用的代码段有助于解决上述错误。未使用的代码段在本地没有引起任何问题,但在 azure 中引起了上述错误。此外,似乎该错误不是因为实际测试中的问题。这是导致错误的片段

<properties>
 <property>
 <name>listener</name>
 <value>io.qameta.allure.junit5.AllureJunit5</value>
 </property>
 </properties>
 <argLine>
 -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
 </argLine>
 <systemProperties>
 <property>
 <name>allure.results.directory</name>
 <value>${project.basedir}/allure-results</value>
 </property>
 <property>
 <name>junit.jupiter.extensions.autodetection.enabled</name>
 <value>true</value>
 </property>
 </systemProperties>
 <reportFormat>plain</reportFormat> 
,

我认为您触及了我们目前正在修复的同一个 bug,这是 Jira 问题 SUREFIRE-1881 的一部分。