TestNG:无法在TestBase类中使用参数TearUp方法
更新到6.9.10后,我仍然面临同样的问题 我的情况与我在BaseTest类中使用的参数略有不同 例如: 当我在eclipse中运行测试时,右键单击“Test1.java”>RunAs>TestNG测试TestNG:无法在TestBase类中使用参数TearUp方法,testng,Testng,更新到6.9.10后,我仍然面临同样的问题 我的情况与我在BaseTest类中使用的参数略有不同 例如: 当我在eclipse中运行测试时,右键单击“Test1.java”>RunAs>TestNG测试 Getting error: "Parameter 'username' is required by @Configuration on method beforeClass but has not been marked @Optional or defined" testNG xml f
Getting error: "Parameter 'username' is required by @Configuration on method beforeClass but has not been marked @Optional or defined"
testNG xml file:
<?xml version="1.0" encoding="UTF-8"?>
<suite name = "MiscSuite">
<parameter name="username" value="username">
<test name = "MiscTest">
<classes >
<class name="drkthng.misc.RunAllTestClasses01" />
</classes>
</test>
</suite>
TestBase class with a @BeforeClass method:
public abstract class TestBase {
@Parameters({"username"})
@BeforeClass
public void beforeClass(String username) {
System.out.println(username);
}
}
public class Test1 extends TestBase {
@BeforeClass
public void startUp() {
Assert.assertTrue(false);
}
@Test
public void Test01() {
Assert.assertTrue(true);
}
}
获取错误:“参数‘username’是beforeClass方法上@Configuration所必需的,但尚未标记为@Optional或defined”
testNG xml文件:
使用@BeforeClass方法的TestBase类:
公共抽象类测试库{
@参数({“用户名”})
@课前
public void beforeClass(字符串用户名){
System.out.println(用户名);
}
}
公共类Test1扩展了TestBase{
@课前
公共无效启动(){
Assert.assertTrue(false);
}
@试验
公共无效测试01(){
Assert.assertTrue(true);
}
}
您收到的此错误是因为您对TestBase类的beforeClass
方法使用了@Parameter注释,并且当您通过右键单击>run As>TestNG Test运行此类时,不会向此方法传递任何参数。这可以通过在beforeClass
方法中传递可选参数来解决。将beforeClass
方法修改为
@Parameters({"username"})
@BeforeClass
public void beforeClass(@Optional("username") String username) {
System.out.println(username);
}
@可选注释传递在不使用testng.xml运行java类时指定的值。希望有帮助 或者他也可以在eclipse插件中配置参数。