繁体   English   中英

无法在TestNG中调用公共方法

[英]Can't invoke public method in TestNG

我在公共课程中有以下构造函数:

public LoginPage(Browser browser, Logger logger) throws GeneralLeanFtException {
    super(browser, logger);
}

browserlogger变量在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尝试这样

不确定但正在查看异常消息和源代码 ,看来您的类中不需要参数构造函数。

您能否在BasePageLoginPage类中不添加任何参数构造函数并进行检查?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM