【发布时间】:2021-07-10 10:09:20
【问题描述】:
我正在尝试在开始测试时设置组名,并且我希望例如 testNg 组注释是 BS 只为 firefox 运行测试。
我使用了这个 IAnnotationTransformer,但它不起作用。也许我有一个错误,但我不明白。你能帮助我吗?顺便说一句,我正在使用 BDD,当我运行我的测试时,它没有进入 MyTransformer 类。这些是我的代码;
Testng.xml
<suite name="Suite" data-provider-thread-count="8"
thread-count="1" parallel="tests">
<listeners>
<listener
class-name="com.demo.listeners.TestNGListener"/>
<listener
class-name="com.demo.listeners.MyTransformer"/>
</listeners>
<test name="Firefox">
<parameter name="browser" value="firefox"></parameter>
<groups>
<run>
<include name="bs"/>
</run>
</groups>
<classes>
<class
name="com.demo.runner"/>
</classes>
</test>
<test name="Chrome">
<parameter name="browser" value="chrome"/>
<groups>
<run>
<include name="zalenium"/>
</run>
</groups>
<classes>-->
<class-->
name="com.demo.runner"/>
</classes>
</test>
</suite>
还有我的变压器课
package com.demo.listeners;
import org.testng.annotations.ITestAnnotation;
import org.testng.internal.annotations.IAnnotationTransformer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class MyTransformer implements IAnnotationTransformer {
@Override
public void transform(ITestAnnotation iTestAnnotation, Class aClass, Constructor constructor, Method method) {
System.out.println("demo");
String[] a = new String[]{"bs"};
String[] b = new String[]{"zalenium"};
if (iTestAnnotation.getTestName().equals("firefox"))
iTestAnnotation.setGroups(b);
else
iTestAnnotation.setGroups(a);
}
}
【问题讨论】:
标签: java selenium cucumber testng