运行 依赖使用@factory 的testng 方法
running depend testng method using @factory
场景:-
我的测试数据是1)字符串A 2)字符串B 3)字符串C
现在我有 class,其中我有数据提供者、工厂和数据
provider 有 3 个值为 String
public class TestParent {
public String tenant;
@Factory(dataProvider = "myList")
public TestParent(String s) {
tenant = s;
}
@DataProvider(name = "myList")
public Object[][] myList() {
List<String> s = new ArrayList<String>();
s.add("A");
s.add("B");
s.add("C");
Object[][] objArray = new Object[s.size()][];
for (int i = 0; i < s.size(); i++) {
objArray[i] = new Object[1];
objArray[i][0] = s.get(i);
}
return objArray;
}
@Test()
public void setup() {
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsonMethod = setup)
public void beforeclass() {
System.out.print("Hello");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsonMethod = beforeclass)
public void afterclass() {
System.out.print("BYE");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsonMethod = afterclass)
public void mm() {
System.out.print("YES");
System.out.print(tenant);
System.out.print("\n");
}
}
我想要的输出
一个
你好A
再见
是的
B
你好B
再见
是B
C
你好C
BYEC
是
创建两个单独的 类 FactoryClass 和 TestDataClass,然后 运行 来自 textng.xml
的 FactoryClass
工厂类:
public class FactoryClass {
@Factory(dataProvider = "myList")
public Object[] createInstances(String str) {
return new Object[] {new TestData(str)};
}
@DataProvider(name = "myList")
static public Object[][] myList(){
return new Object[][] {
new Object[] { new String("A") },
new Object[] { new String("B") },
};
}
}
测试数据类:
public class TestData {
private String tenant;
public TestData(String s)
{
this.tenant=s;
}
@Test()
public void setup( )
{
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsOnMethods="setup")
public void beforeclass()
{
System.out.print("Hello");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsOnMethods="beforeclass")
public void afterclass()
{
System.out.print("BYE");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsOnMethods="afterclass")
public void mm()
{
System.out.print("YES");
System.out.print(tenant);
System.out.print("\n");
}
}
XML 文件:
<suite name="StackNew" verbose="1">
<test name="test" group-by-instances="true">
<classes>
<class name="stack.FactoryClass"></class>
</classes>
</test>
</suite>
如果您遇到序列问题:Link
场景:-
我的测试数据是1)字符串A 2)字符串B 3)字符串C
现在我有 class,其中我有数据提供者、工厂和数据 provider 有 3 个值为 String
public class TestParent {
public String tenant;
@Factory(dataProvider = "myList")
public TestParent(String s) {
tenant = s;
}
@DataProvider(name = "myList")
public Object[][] myList() {
List<String> s = new ArrayList<String>();
s.add("A");
s.add("B");
s.add("C");
Object[][] objArray = new Object[s.size()][];
for (int i = 0; i < s.size(); i++) {
objArray[i] = new Object[1];
objArray[i][0] = s.get(i);
}
return objArray;
}
@Test()
public void setup() {
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsonMethod = setup)
public void beforeclass() {
System.out.print("Hello");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsonMethod = beforeclass)
public void afterclass() {
System.out.print("BYE");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsonMethod = afterclass)
public void mm() {
System.out.print("YES");
System.out.print(tenant);
System.out.print("\n");
}
}
我想要的输出
一个
你好A
再见
是的
B
你好B
再见
是B
C
你好C
BYEC
是
创建两个单独的 类 FactoryClass 和 TestDataClass,然后 运行 来自 textng.xml
的 FactoryClass工厂类:
public class FactoryClass {
@Factory(dataProvider = "myList")
public Object[] createInstances(String str) {
return new Object[] {new TestData(str)};
}
@DataProvider(name = "myList")
static public Object[][] myList(){
return new Object[][] {
new Object[] { new String("A") },
new Object[] { new String("B") },
};
}
}
测试数据类:
public class TestData {
private String tenant;
public TestData(String s)
{
this.tenant=s;
}
@Test()
public void setup( )
{
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsOnMethods="setup")
public void beforeclass()
{
System.out.print("Hello");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsOnMethods="beforeclass")
public void afterclass()
{
System.out.print("BYE");
System.out.print(tenant);
System.out.print("\n");
}
@Test(dependsOnMethods="afterclass")
public void mm()
{
System.out.print("YES");
System.out.print(tenant);
System.out.print("\n");
}
}
XML 文件:
<suite name="StackNew" verbose="1">
<test name="test" group-by-instances="true">
<classes>
<class name="stack.FactoryClass"></class>
</classes>
</test>
</suite>
如果您遇到序列问题:Link