簡體   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