【发布时间】:2013-09-23 09:51:33
【问题描述】:
我有两个班级
public class ClassA
{
@Test
public void method1()
{
System.out.println("In method1 method of ClassA");
}
@Test
public void method2()
{
System.out.println("In method2 method of ClassA");
}
}
public class ClassB extends ClassA
{
@Test
public void method3()
{
System.out.println("In method3 method of ClassB");
}
}
还有我的 testng.xml
<test name="group-test" preserve-order="true" >
<classes>
<class name="com.ClassA">
<methods>
<include name="method1"/>
<include name="method2"/>
</methods>
</class>
<class name="com.ClassB">
<methods>
<include name="method3"/>
</methods>
</class>
</classes>
</test>
执行测试后,我的输出是
在ClassA的method1方法中
在ClassA的method2方法中
在ClassB的method3方法中
在 ClassA 的 method1 方法中
在ClassA的method2方法中
method1() 和method2() 在method3() 之后再次执行
预期输出:
在ClassA的method1方法中
在ClassA的method2方法中
在ClassB的method3方法中
【问题讨论】:
-
你的问题是什么?
-
为什么
method1()和method2()在method3()之后再次执行? -
如果我写
<class name="com.ClassB"> <methods> <include name="method3"/> <exclude name="method1"/> <exclude name="method2"/> </methods> </class>那么method1()和method2()仍然会执行 -
你为什么不只执行B类?
标签: java unit-testing testng