[英]Can't invoke public method in TestNG
I have following constructor in a public class: 我在公共课程中有以下构造函数:
public LoginPage(Browser browser, Logger logger) throws GeneralLeanFtException {
super(browser, logger);
}
browser
and logger
variables are defined in BasePage
class, which is extended by this class. browser
和logger
变量在BasePage
类中定义,该类对此类进行了扩展。
public class BasePage {
protected Browser browser;
protected Logger logger;
public BasePage(Browser browser,Logger logger) throws GeneralLeanFtException {
this.browser = browser;
this.logger = logger;
}
}
I get following error message when execute it with TestNG
. 使用
TestNG
执行该错误消息时,出现以下错误消息。
either make it static or add a no-args constructor to your class
将其设为静态或向类添加无参数构造函数
Error stack: 错误堆栈:
throws com.hp.lft.sdk.GeneralLeanFtException,java.lang.InterruptedException: either make it static or add a no-args constructor to your class at org.testng.internal.Utils.checkInstanceOrStatic(Utils.java:795) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:40) at org.testng.internal.Invoker.invokeMethod(Invoker.java:714) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) 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:348) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305) at org.testng.SuiteRunner.run(SuiteRunner.java:254) at org.tes
抛出com.hp.lft.sdk.GeneralLeanFtException,java.lang.InterruptedException:将其设为静态,或在org.testng.internal.Utils.checkInstanceOrStatic(Utils.java:795)处的类中添加无参数构造函数org.testng.internal.Invoker.invokeMethod(Invoker.java:714)位于org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)具有.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:40) org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)上的org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)在org.testng的org.testng.SuiteRunner.runTest(SuiteRunner.java:348)的org.testng.TestRunner.run(TestRunner.java:617)的org.testng.TestRunner.privateRun(TestRunner.java:767)处。 org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)的org.testng.SuiteRunner.run(SuiteRunner.java:254)的SuiteRunner.runSequentially(SuiteRunner.java:343) tng.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)
在org.testng上的tng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)在org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)处的org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)在org.testng.TestNG.runSuitesLocally (TestNG.java:1149),位于org.testng.TestNG.run(TestNG.java:1057)
Class from test is executed: 测试中的类被执行:
@Test
public class LeanFTest {
public static void main(String[] args) throws IOException, SAXException, ParserConfigurationException {
TestNG testNG = new TestNG();
testNG.setTestSuites(Arrays.asList("testng.xml"));
testNG.setPreserveOrder(true);
testNG.run();
}
}
Protected
variable can be seen by this class, classes in the same package and classes which extend that class. 此类,同一包中的类和扩展该类的类可以看到
Protected
变量。
static
variable exists at class level, it does not exist separately for each instance and it does not have an independent existence in classes which extend class. static
变量存在于类级别,它不会为每个实例单独存在,并且在扩展类的类中没有独立存在。
public class BasePage {
protected static Browser browser;
protected static Logger logger;
public BasePage(Browser browser,Logger logger) throws GeneralLeanFtException {
this.browser = browser;
this.logger = logger;
}
}
try like this by making protected
variables as protected static
通过将
protected
变量设置为protected static
尝试这样
Not sure but looking exception message, and source code it seems you need to have no argument constructor in your class. 不确定但正在查看异常消息和源代码 ,看来您的类中不需要参数构造函数。
Can you add no argument constructor in your BasePage and LoginPage class and check? 您能否在BasePage和LoginPage类中不添加任何参数构造函数并进行检查?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.