gpt4 book ai didi

java - 对于不存在的测试套件,AssertionFailedError Forked Java VM 异常退出

转载 作者:行者123 更新时间:2023-11-30 06:48:33 32 4
gpt4 key购买 nike

这可能看起来与 SO 上的某些内容重复,但我查看了 this , this , thisthis但尚未找到有效的解决方案。

我遇到的问题是我在 jenkins 上为不存在的测试套件收到此错误。以下是 jenkins ant 构建日志中打印的错误;

compile-tests-run:
[junit] Testsuite: com.smartstream.control.engine.validation.Batch-With-Multiple-Tests
[junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec
[junit]
[junit] Testcase: null took 0 sec
[junit] Caused an ERROR
[junit] Forked Java VM exited abnormally. Please note the time in the report does not reflect the time until the VM exit.
[junit] junit.framework.AssertionFailedError: Forked Java VM exited abnormally. Please note the time in the report does not reflect the time until the VM exit.
[junit]
[junit] Running com.smartstream.control.engine.validation.Batch-With-Multiple-Tests
[junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec

BUILD FAILED
u:\jenkins\workspace\control.unittests.execution.time.test\build\build.xml:256: The following error occurred while executing this line:
u:\jenkins\workspace\control.unittests.execution.time.test\engine\build\build.xml:287: Process fork failed.

Total time: 7 minutes 42 seconds
Build step 'Invoke Ant' marked build as failure
Archiving artifacts
Recording test results
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Email was triggered for: Failure - Any
Sending email for trigger: Failure - Any
Sending email to: xxxxxxxx@abc.xom
Finished: FAILURE

现在如您所见,它似乎在 com.smartstream.control.engine.validation.Batch-With-Multiple-Tests 上失败了,但是我的测试套件中没有任何这样的测试套件整个工作区。我什至在项目的任何地方都找不到它作为文字字符串。

工作区中的以下搜索未返回任何结果; enter image description here

windows findstr 也没有;

我曾尝试增加 ant 构建内存和 permgen,但无济于事。该构建使用 java 1.7.0_80-b15 和 ant 1.9.6 运行。以下是 engine/build.xml 文件中的 junit ant 任务规范;

    <junit dir="." haltonfailure="false" printsummary="yes" forkmode="once" fork="yes" showoutput="yes" failureproperty="tests.failed">
<classpath location="${build.testclasses}" />
<classpath location="${resources.dir}" />
<classpath location="${common.properties}" />
<classpath location="${common.libs}" />

<formatter type="xml" />
<formatter type="plain" usefile="false" />
<jvmarg value="-Demma.coverage.out.file=${build.coveragereport}/coverage.emma" />
<jvmarg value="-Demma.coverage.out.merge=true" />
<jvmarg value="-Xms512m" />
<jvmarg value="-Xmx1536m" />
<jvmarg value="-XX:MaxPermSize=512m" />
<jvmarg value="-XX:-UseSplitVerifier"/>

<batchtest todir="${build.report}">
<fileset dir="${test.dir}">
<include name="**/*Test.java" />
<exclude name="${excludeTestPattern1}" />
<exclude name="${excludeTestPattern2}" />
<exclude name="${excludeTestPattern3}" />
<exclude name="${excludeTestPattern4}" />
<exclude name="${excludeTestPattern5}" />
</fileset>
</batchtest>
</junit>

到目前为止我尝试了什么

  • 检查了 jenkins 作业上的 Delete workspace before build starts 以获得完全干净的构建。
  • 初始 xmx 为 512m,我将其更新为 1024m,后来更新为 1536m
  • 初始 perm 大小为 256m,已更新为 512m
  • 在 ant 任务中使用了 forkshowoutput 属性
  • 从最初的尝试中更新了 java 和 ant 版本

如有任何帮助,我们将不胜感激。

最佳答案

我找到了解决这个问题的方法。我必须为 ant 启用详细日志记录,并通过它观察到以下堆栈跟踪;

Caused by: java.io.IOException: Cannot run program "u:\jenkins\tools\hudson.model.JDK\Java7\jre\bin\java.exe" (in directory "u:\jenkins\workspace\control.unittests.execution.time.test\engine"): CreateProcess error=206, The filename or extension is too long
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at java.lang.Runtime.exec(Runtime.java:617)
at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:1257)
... 32 more
Caused by: java.io.IOException: CreateProcess error=206, The filename or extension is too long
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:385)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
... 37 more

由于 jenkins 根据构建作业名称创建工作区,因此通过它创建 fork 虚拟机太长了。我更改了 Jenkins 的工作名称并解决了这个问题。

关于java - 对于不存在的测试套件,AssertionFailedError Forked Java VM 异常退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44131380/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com