我有两个班级
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方法中
答案 0 :(得分:3)
这是ClassB
从method1
继承method2
和ClassA
以来的预期行为。
要获得所需的行为,您应该只执行ClassB
或将ClassB
作为ClassA
的孩子。
可能的解决方案:
<test name="group-test" preserve-order="true" >
<classes>
<class name="com.ClassB">
<methods>
<include name="method3"/>
</methods>
</class>
</classes>
</test>
OR:
public class ClassB
{
@Test
public void method3()
{
System.out.println("In method3 method of ClassB");
}
}
维护您在问题中提供的相同XML。
希望这有帮助!