[英]Can't invoke public method in TestNG
我在公共课程中有以下构造函数:
public LoginPage(Browser browser, Logger logger) throws GeneralLeanFtException {
super(browser, logger);
}
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;
}
}
使用TestNG
执行该错误消息时,出现以下错误消息。
将其设为静态或向类添加无参数构造函数
错误堆栈:
抛出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) 在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)
测试中的类被执行:
@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
变量。
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;
}
}
通过将protected
变量设置为protected static
尝试这样
不确定但正在查看异常消息和源代码 ,看来您的类中不需要参数构造函数。
您能否在BasePage和LoginPage类中不添加任何参数构造函数并进行检查?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.