我目前正在用TestNG编写测试。目前,我有以下方法:

@Parameters({"clickRememberMe"})
@Test
public void runTest(String clickRememberMe) {
}


现在,我发现可以使用一个名为org.testng.ITestContext的TestNG类在测试之间共享数据。显示它的教程告诉我这样做:

@Test
public void runTest(ITestContext itc){
}


这也有效。但是,现在我想将参数与ITestContext一起使用,如下所示:

@Parameters({"clickRememberMe"})
@Test
public void runTest(ITestContext itc, String clickRememberMe) {
}


可悲的是,这引发了以下异常:

java.lang.IllegalArgumentException: argument type mismatch


有什么方法可以在TestNG中将@Parameters与ITestContext一起使用?

最佳答案

我已经找到了解决方案。代替:

@Parameters({"clickRememberMe"})
@Test
public void runTest(ITestContext itc, String clickRememberMe) {
}


我必须将ITestContext放在参数之后,如下所示:

@Parameters({"clickRememberMe"})
@Test
public void runTest(String clickRememberMe, ITestContext itc) {
}

10-08 14:28