有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

朱尼特和詹金斯组织。朱尼特。contrib。JAVAlang.system。内部的CheckExitCalled:尝试以状态0退出

我尝试并行运行junit测试。但是,虽然我的测试必须完成,他们却没有。 我的詹金斯在跑步,似乎不会结束

The error is:
org.junit.contrib.java.lang.system.internal.CheckExitCalled: Tried to exit with status 0.
    at org.junit.contrib.java.lang.system.internal.NoExitSecurityManager.checkExit(NoExitSecurityManager.java:24)
    at java.lang.Runtime.exit(Runtime.java:107)
    at java.lang.System.exit(System.java:962)
    at org.apache.maven.surefire.booter.ForkedBooter.exit(ForkedBooter.java:144)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:127)
Exception in thread "main" org.junit.contrib.java.lang.system.internal.CheckExitCalled: Tried to exit with status 1.
    at org.junit.contrib.java.lang.system.internal.NoExitSecurityManager.checkExit(NoExitSecurityManager.java:24)
    at java.lang.Runtime.exit(Runtime.java:107)
    at java.lang.System.exit(System.java:962)
    at org.apache.maven.surefire.booter.ForkedBooter.exit(ForkedBooter.java:144)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:135)
Exception in thread "Thread-5" Exception in thread "Thread-6" org.junit.contrib.java.lang.system.internal.CheckExitCalled: Tried to exit with status 1.
    at org.junit.contrib.java.lang.system.internal.NoExitSecurityManager.checkExit(NoExitSecurityManager.java:24)
    at java.lang.Runtime.halt(Runtime.java:273)
    at org.apache.maven.surefire.booter.ForkedBooter$1.run(ForkedBooter.java:176)
    at java.lang.Thread.run(Thread.java:744)
org.junit.contrib.java.lang.system.internal.CheckExitCalled: Tried to exit with status 0.
    at org.junit.contrib.java.lang.system.internal.NoExitSecurityManager.checkExit(NoExitSecurityManager.java:24)
    at java.lang.Runtime.halt(Runtime.java:273)
    at org.apache.maven.surefire.booter.ForkedBooter$1.run(ForkedBooter.java:176)
    at java.lang.Thread.run(Thread.java:744)

在我的班上,我有:

@Rule
public final ExpectedSystemExit expectedSystemExit = ExpectedSystemExit.none();

 if(carInsuranceSteps.isCheackReservationAddressNotFoundError()) {
            Thucydides.takeScreenshot();
            expectedSystemExit.expectSystemExitWithStatus(0);
            System.exit(0);
        }

共 (1) 个答案

  1. # 1 楼答案

    异常由System Rules引发。它必须替换SecurityManager才能测试System.exit(),然后恢复原始SecurityManager。这意味着您不能在同一JVM中使用系统规则并行运行多个测试