【发布时间】:2014-08-14 05:11:56
【问题描述】:
我在单个类中有 5 个带有 @Test 注释的测试(我正在使用 java 和 TestNG)和一个具有一些逻辑的公共辅助方法(在同一个类中),每个测试方法都在调用这个方法。问题是,所有 5 个测试都通过了,但 testng 正在尝试执行辅助方法并将该运行显示为跳过/失败。以下是我正在使用的代码:
public class TestClass extends BaseTestClass {
@Test
public void testA(){
//first test code
}
@Test
public void testB(){
//second test code
}
@Test
public void testC(){
//third test code
}
@Test
public void testD(){
//fourth test code
}
@Test
public void testE(){
//fifth test code
}
public void helperMethod( ){
//some logic that each test method is using
}
}
这是 m 得到的结果:
PASSED: testA
PASSED: testB
PASSED: testC
PASSED: testD
PASSED: testE
SKIPPED: helperMethod
org.testng.TestNGException:
Method helperMethod requires 2 parameters but 0 were supplied in the @Test annotation.
at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:198)
at org.testng.internal.Parameters.createParameters(Parameters.java:134)
at org.testng.internal.Parameters.createParameters(Parameters.java:373)
at org.testng.internal.Parameters.handleParameters(Parameters.java:450)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1383)
at org.testng.internal.Invoker.createParameters(Invoker.java:1075)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1180)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
===============================================
Default test
Tests run: 6, Failures: 0, Skips: 1
===============================================
但是,如果我将 helperMethod 声明为私有,它就可以正常工作。谁能解释一下,为什么会这样?
【问题讨论】:
标签: java selenium-webdriver testng