TestNgの工場試験参照@DataProviderデータソース---工場試験の活用
2490 ワード
以前、@Factoryは同じタイプのパラメータの変化性のテストに適していると述べましたが、パラメータ値に特定の規則がない場合は、@Factoryと@DataProviderを組み合わせてテストすることができます.
注意ポイント:@Factory自体がループテストのタイプであり、@DataProviderもテスト全体のループのタイプであるため、テスト方法が合計で実行される回数に注意してください.
Java code:
プロファイル:
テスト結果:
もし私が厚かましいなら、私が不器用だと思わないでください.私は知っているので、厚徳は物を積むことができて、人を助けることができて楽しいです.
注意ポイント:@Factory自体がループテストのタイプであり、@DataProviderもテスト全体のループのタイプであるため、テスト方法が合計で実行される回数に注意してください.
Java code:
/**
*
* <p>
* Title: TestngFactoryDataProvider
* </p>
*
* <p>
* :testng-factoryDataProvider.xml
*
* Description:
* @DataProvider , Factory , , :TestngFactoryTest
* </p>
*
* <p>
* Company:
* </p>
*
* @author : Dragon
*
* @date : 2014 10 22
*/
public class TestngFactoryDataProvider {
@Factory(dataProvider = "datasource")
public Object[] createInstances(int a) {
System.out.println(a);
Object[] result = new Object[a];
for (int i = 0; i < a; i++) {
result[i] = new TestngFactoryTest(i * 10);
}
return result;
}
@DataProvider(name = "datasource")
public Object[][] getDatasource() {
return new Object[][] { new Object[] { 2 }, new Object[] { 4 } };
}
}
public class TestngFactoryTest {
private int m_numberOfTimes;
public TestngFactoryTest(int numberOfTimes) {
this.m_numberOfTimes = numberOfTimes;
}
private static int num;
@Test
public void testServer() {
num++;
System.out.println("num " + num + " m_numberOfTimes :"
+ m_numberOfTimes);
}
}
プロファイル:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- allow-return-values FALSE, -->
<suite name="framework_testng" allow-return-values="true">
<test verbose="2" name="TestMethods">
<classes>
<class name="com.dragon.testng.annotation.TestngFactoryDataProvider">
</class>
</classes>
</test>
</suite>
テスト結果:
num 1 m_numberOfTimes :20
num 2 m_numberOfTimes :10
num 3 m_numberOfTimes :0
num 4 m_numberOfTimes :30
num 5 m_numberOfTimes :10
num 6 m_numberOfTimes :0
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
===============================================
TestMethods
Tests run: 6, Failures: 0, Skips: 0
===============================================
もし私が厚かましいなら、私が不器用だと思わないでください.私は知っているので、厚徳は物を積むことができて、人を助けることができて楽しいです.