TestNG - 浏览器在打开后立即关闭,测试失败并出现错误

时间:2016-02-04 16:41:37

标签: selenium selenium-webdriver testng

所以我在Eclipse中有两个相同类的项目,而project1运行正常,但是project2失败并出现以下错误:

[TestNG] Running:
  /private/var/folders/p8/sjw70s_n5f37bhv94xvr7v0c0000gn/T/testng-eclipse-1676803728/testng-customsuite.xml

FAILED CONFIGURATION: @AfterMethod tearDown([TestResult name=testBlankCard status=FAILURE method=testBlankCardInfo.testBlankCard()[pri:0, instance:testBlankCardInfo@2fc14f68] output={null}])
java.lang.NullPointerException
    at testBlankCardInfo.tearDown(testBlankCardInfo.java:124)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:703)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
    at org.testng.TestRunner.privateRun(TestRunner.java:774)
    at org.testng.TestRunner.run(TestRunner.java:624)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
    at org.testng.SuiteRunner.run(SuiteRunner.java:261)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
    at org.testng.TestNG.run(TestNG.java:1048)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:112)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:176)

FAILED: testBlankCard
java.lang.NoClassDefFoundError: freemarker/template/TemplateModelException
    at com.relevantcodes.extentreports.ExtentReports.<init>(ExtentReports.java:78)
    at com.relevantcodes.extentreports.ExtentReports.<init>(ExtentReports.java:362)
    at testBlankCardInfo.testBlankCard(testBlankCardInfo.java:47)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:639)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
    at org.testng.TestRunner.privateRun(TestRunner.java:774)
    at org.testng.TestRunner.run(TestRunner.java:624)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
    at org.testng.SuiteRunner.run(SuiteRunner.java:261)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
    at org.testng.TestNG.run(TestNG.java:1048)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:112)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:176)
Caused by: java.lang.ClassNotFoundException: freemarker.template.TemplateModelException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 27 more


===============================================
    Default test
    Tests run: 1, Failures: 1, Skips: 0
    Configuration Failures: 1, Skips: 0
===============================================


===============================================
Suite
Total tests run: 1, Failures: 1, Skips: 0
Configuration Failures: 1, Skips: 0
===============================================

[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@3830f1c0: 8 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@1eb44e46: 47 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1ee0005: 43 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@76ccd017: 5 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 5 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@4926097b: 15 ms

Project 1在eclipse中运行良好,但是当我在终端中运行它时,我得到了与上面相同的错误。 如果重要的话,我正在使用Firefox。

我的@AfterMethod看起来像这样:

@AfterMethod
    public void tearDown(ITestResult result) throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            Assert.fail(verificationErrorString);
        }
        if(result.getStatus()==ITestResult.FAILURE)
        {
            logger.log(LogStatus.FAIL, "Blank Card verification");
        }

        report.endTest(logger);
        report.flush();

        driver.get(".../Desktop/Selenium/testreport.html");
    }

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:3)

您正在使用

driver.get(".../Desktop/Selenium/testreport.html");

driver.quit();
在tearDown中的

这就是它因为驱动程序或会话已关闭/退出而获得零点异常的原因

请检查并相应更新..

谢谢你, 穆拉利