批处理运行不会捕获控制台中的异常

时间:2017-01-10 06:24:55

标签: java testng

请找到以下简单程序:

package com.temp.practice;
import org.testng.SkipException;
import org.testng.annotations.Test;

@Test
public class Exp1
{
   public void e1()
   {    
      System.out.println("Excpetion Test1");
      throw new SkipException("e1--- The test cases is not executed");
   }
}

如果我执行上面的代码,我会按预期在控制台中收到SkipException

enter image description here

但是当我在三个不同的类中使用相同类型的代码并批量执行它们时,控制台中不会捕获跳过异常。

enter image description here

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="SuiteName" >
<test name="ITest">
<classes>
<class name="com.temp.practice.Exp1"/>
</classes>
</test> <!-- TestB -->
<test name="StroSearch">
<classes>
<class name="com.temp.practice.Exp2"/>
</classes>
</test> <!-- TestB -->
<test name="full">
<classes>
<class name="com.temp.practice.Exp3"/>
</classes>
</test> <!-- TestB -->
</suite> <!-- SuiteName -->

可能是什么原因?

1 个答案:

答案 0 :(得分:1)

问题是您没有在套件xml中指定详细级别。只有在套件xml中定义了2或更多的详细程度时,才会打印Stacktraces。所以要看堆栈跟踪

  • 更改 int newNumber = (10 + number - 2) % 10;
  • <suite name="SuiteName" > 然后再试一次。您应该在控制台上看到异常堆栈跟踪。