在异常发生后评估断言?

Evaluate asserts after exception has taken place?

版本:testng-6.8.8.jar

此测试运行绿色:

@Test(expectedExceptions = { NullPointerException.class })
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() throws Exception {
  String iAmNull = null;
  int length = iAmNull.length();
  assertEquals(0, 1);
}

任何配置文件或其他选项
在异常发生后继续并评估断言?

您必须重写您的测试。 例如:

@Test
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() {
  String iAmNull = null;
  boolean hasNpe = false;
  try {
    int length = iAmNull.length();
  } catch(NullPointerException npe) {
    hasNpe = true;
  }
  assertTrue(hasNpe);
  assertEquals(0, 1);
}

与TestNG无关。这是关于 Java 如何工作(并且应该工作)的。对 null ( <nullObject>.someMethod() ) 的任何方法调用都会导致抛出 NullPointerException。如果您没有在您的方法中捕获它,它就会向上传播到调用堆栈。如果未在任何地方处理,执行将以堆栈跟踪结束。