我有一个TestNG.xml
,如下所示
<test name="Regression Tests - Test1">
<parameter name="TestData" value = "Sample.xls" />
<parameter name="VaultName" value = "Test Vault" />
<parameter name="RestoreVault" value = "Test1" />
<classes>
<class name="Project.Tests.RegTest1"/>
<class name="Project.Tests.RegTest2"/>
</classes>
</test>
我的RegTest1.java
将@Test方法设为
@Test
@Parameters("sourceName")
public void test1(String sourceName) throws Exception {
}
@Test
@Parameters("VaultName")
public void test2(String VaultName) throws Exception {
}
当我一起运行所有套件时,它无法识别输入参数TestData,VaultName
等并抛出异常
org.testng.TestNGException:
Parameter 'TestData' is required by @Test on method test1 but has not been marked @Optional or defined
但是,如果我的套件只有一个指定的测试类,它会拾取传递的相应参数。
如何在一起运行所有套件时传递参数?
答案 0 :(得分:0)
你在哪里传递testng.xml中的“sourceName”??
如果它是可选参数,那么定义测试如:
public void test1(@Optional("sourceName") String sourceName) {
//Your test-case
}
答案 1 :(得分:0)
您缺少“测试数据”参数。您可以将它加载到BeforeClass注释上,并在不需要时将其设置为null。像这样:
@BeforeClass
@Parameters("TestData")
public void init(String testData) throws Exception {
testData = null;
}
@Test
@Parameters("sourceName")
public void test1(String sourceName) throws Exception {
}
@Test
@Parameters("VaultName")
public void test2(String VaultName) throws Exception {
}