Не могу вызвать публичный метод в TestNG - PullRequest
0 голосов
/ 29 июня 2018

У меня есть следующий конструктор в публичном классе:

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.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:40) в org.testng.internal.Invoker.invokeMethod (Invoker.java:714) в org.testng.internal.Invoker.invokeTestMethod (Invoker.java:901) в org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1231) в org.testng.internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java:127) в org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:111) в org.testng.TestRunner.privateRun (TestRunner.java:767) в org.testng.TestRunner.run (TestRunner.java:617) в org.testng.SuiteRunner.runTest (SuiteRunner.java:348) в org.testng.SuiteRunner.runSequentially (SuiteRunner.java:343) в org.testng.SuiteRunner.privateRun (SuiteRunner.java:305) в org.testng.SuiteRunner.run (SuiteRunner.java:254) в org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) в org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:86) в org.testng.TestNG.runSuitesSequentially (TestNG.java:1224) в 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();
    }

}

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Не уверен, но ищет сообщение об исключении, и исходный код кажется, вам не нужно иметь конструктор аргументов в вашем классе.

Можете ли вы добавить конструктор аргументов в ваш класс BasePage и LoginPage и проверить?

0 голосов
/ 29 июня 2018
Этот класс может видеть переменную

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...