我有一个类,它包含一个@Test方法(sampleTest1)。在那个方法中,我有4个来自其他类的@Test方法调用。当我通过TestNG运行我的测试用例时,它仅在输出控制台中记录主要测试方法,并表示已通过1个测试方法。如何在testreport中使用testNG记录@Test方法的详细信息
如何记录在子类文件中定义的所有4种测试方法?
请有人可以帮助我。
感谢, 萨西
我有一个类,它包含一个@Test方法(sampleTest1)。在那个方法中,我有4个来自其他类的@Test方法调用。当我通过TestNG运行我的测试用例时,它仅在输出控制台中记录主要测试方法,并表示已通过1个测试方法。如何在testreport中使用testNG记录@Test方法的详细信息
如何记录在子类文件中定义的所有4种测试方法?
请有人可以帮助我。
感谢, 萨西
你不能有测试用例的TestNG的之间的父子关系,如果你尝试从父测试打电话给他们,他们会执行,但他们不会是报告的一部分,你可能没有任何线索,如果他们失败。
注释变形金刚方法
如果你想运行基于某些条件的方法,那么你可能要看看Annotation Transformers
您需要通过实现IAnnotationTransformer
接口创建一个类。在变换方法中检查您的条件,将Enable属性设置为true或false以禁用@Test testcase
。
public class MyTransformer implements IAnnotationTransformer {
private MyParentClass parent;
public MyTransformer(MyParentClass parent){
this.parent = parent;
}
public void transform(ITest annotation, Class testClass,
Constructor testConstructor, Method testMethod)
{
if (checkConditionForMethod(testMethod.getName())) {
annotation.setEnabled(false);
}
}
public boolean checkConditionForMethod(String methodName){
return parent.isValidSwitchForMethod(methodName);
}
}
您添加注释变压器编程:
TestNG tng = new TestNG();
tng.setAnnotationTransformer(new MyTransformer(parentClassInstance));
内部类接近
其他方式对嵌套测试用例为您的父类创建内部类,然后定义内部类内的测试用例,但没有任何条件。
例如,如果你在下面的阶级结构:
TestClassParent [Testcase1Parent] [Testcase2Parent]
|_ TestSubClass1 [Testcase1Sub1] [Testcase1Sub1]
|_ TestSubClass2 [Testcase1Sub2] [Testcase2Sub2]
然后执行顺序将是这样的:你需要按顺序执行,以实现自己的目标来定义测试用例。
Testcase1Sub1
Testcase2Sub1
Testcase1Sub2
Testcase2Sub2
Testcase1Parent
Testcase2Parent
Testng仅记录它自称的@Test方法。但是,如果您通过创建测试类的对象来调用。它不会将其作为单独的测试记录下来。
所以你可以做的是你可以让testng调用它们并通过使用dependsongroups和dependsonmethods维护执行流。但要小心,一旦你使用取决于组testng不会保留你的测试类的顺序了。
为什么不能在父类中定义它们? – Garry
我有一个像测试开关一样的流程。这是在父类和控制我的执行活动。请假设sampleTest1是基于if条件的我的switch方法它必须调用子类文件中适当的测试方法。 – SKumar
你能分享一些代码吗? – juherr