无法在TestNG

时间:2018-06-29 08:54:13

标签: java 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.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 :(得分:0)

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

答案 1 :(得分:0)

不确定但正在查看异常消息,并且source code似乎您的类中不需要参数构造函数。

是否可以在 BasePage LoginPage 类中不添加任何参数构造函数并进行检查?