Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用组时无法运行testng xml_Java_Selenium_Testng - Fatal编程技术网

Java 使用组时无法运行testng xml

Java 使用组时无法运行testng xml,java,selenium,testng,Java,Selenium,Testng,我创建了一个testng.xml文件来运行一些标记为冒烟测试的测试(使用组)。现在,我尝试将此xml文件作为testng套件运行,但所有测试用例都失败了。浏览器甚至没有打开。请参阅下面的xml文件 <suite name="Smoke Test" verbose="1"> <parameter name="browser" value="chrome"></parameter> <test name="Smoke Test">

我创建了一个testng.xml文件来运行一些标记为冒烟测试的测试(使用组)。现在,我尝试将此xml文件作为testng套件运行,但所有测试用例都失败了。浏览器甚至没有打开。请参阅下面的xml文件

<suite name="Smoke Test" verbose="1">
    <parameter name="browser" value="chrome"></parameter>
    <test name="Smoke Test">
        <groups>
            <run>
                <include name="smoketest" />
            </run>
        </groups>

        <packages>
            <package name="com.banner.tests" />
        </packages>

    </test>
</suite>

alwaysRun=true
添加到您的
@BeforeSuite
/
@AfterSuite
中,然后重试。你应该很好

问题在于,您的前后套件配置方法不属于任何组,而这正是您初始化数据块报告的地方

按组运行时,TestNG将仅执行属于组的测试/配置


为了确保无论选择运行哪个组,如果TestNG总是运行您的配置方法,您应该向它们添加
alwaysRun=true

alwaysRun=true
添加到您的
@BeforeSuite
/
@AfterSuite
中,然后重试。你应该很好

问题在于,您的前后套件配置方法不属于任何组,而这正是您初始化数据块报告的地方

按组运行时,TestNG将仅执行属于组的测试/配置


为确保无论选择运行哪个组,如果TestNG始终运行您的配置方法,则应向其添加
alwaysRun=true

有人能帮助解决问题吗?请使用您的代码块或类文件更新问题。添加了suitebase代码。如果这还不够,请告诉我
ExtentManager.getReporter()似乎与testng无关。在范围报告中失败。您是否可以检查在没有组的情况下此操作是否失败?是否有人可以帮助解决问题?请使用您的代码块或类文件更新问题。添加了suitebase代码。如果这还不够,请告诉我
ExtentManager.getReporter()似乎与testng无关。在范围报告中失败。你能不能检查一下,在没有团队的情况下,这是否也失败了?
java.lang.ExceptionInInitializerError
    at com.cub.tests.Coupons.addCouponAsSignedInUser(Coupons.java:125)
    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:108)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:744)
    at org.testng.TestRunner.run(TestRunner.java:602)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
    at org.testng.SuiteRunner.run(SuiteRunner.java:289)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
    at org.testng.TestNG.runSuites(TestNG.java:1144)
    at org.testng.TestNG.run(TestNG.java:1115)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
Caused by: java.lang.NullPointerException
    at java.io.File.<init>(File.java:277)
    at com.relevantcodes.extentreports.Report.setFilePath(Report.java:527)
    at com.relevantcodes.extentreports.ExtentReports.<init>(ExtentReports.java:80)
    at com.relevantcodes.extentreports.ExtentReports.<init>(ExtentReports.java:375)
    at com.common.utils.ExtentManager.getReporter(ExtentManager.java:13)
    at com.common.utils.ExtentTestManager.<clinit>(ExtentTestManager.java:11)
    ... 26 more
@BeforeSuite
    public void beforeSuiteActivties() {
        logger.info("Performing BeforeSuite activities..");
        setApplicationProperties();
        testURL = getTestURL();
        setTestData();
        hubURL = getHubAddress();
        if(banner.equalsIgnoreCase("MACKENTHUNS")){
        updateXML = new UpdateXML();
        updateXML.updateTestData(testDataFileName);
        }
        extentReportPath = System.getProperty("user.dir") + "\\test-output\\extent\\" + banner + "\\extentreport.html";
        extent = ExtentManager.getReporter();
    }

    @AfterSuite
    public void afterSuiteActivities() {
        extent.close();
    }

    @Parameters({ "browser" })
    @BeforeTest
    public void beforeTestActivities(String browserName) {
        logger.info("Performing Before Test Activities");
        setUpDriver(browserName);
        setObjects();
    }

    @BeforeMethod
    public void beforeMethodActivities(Method method) {
        logger.info("Performing Before Method Activities");
        ExtentTestManager.startTest(method.getName());
        /*if (!linkExists(testURL)) {
            throw new SkipException("The test link --> " + testURL + " is not working");
        }*/
        commonPage = new CommonPage(getDriver());
        boolean isSignInVisible = false;
        isSignInVisible = commonPage.isSignInPresent();
        logger.info("Is User Logged Out? " + isSignInVisible);
        if (!isSignInVisible) {
            try {
                commonPage.clickFooterLink(CommonPage.FOOTERLINK_LOGOUT);
                CommonPage.waitForPageToBeReady(getDriver());
            } catch (Exception exception) {
                logger.error("Error occurred while trying to click on Logout link");
            }
        } else
            logger.info("Sign In link is available for login so proceeding with next test method execution");

    }

    public void setUpDriver(String browserName) {
        try {
            if (testURL != "" && hubURL != "") {
                logger.info("Test Environment -- > " + environment);
                logger.info("Validation on URL -- > " + testURL);
                logger.info("Hub URL -- > " + hubURL);
                driver = new RemoteWebDriver(new URL(hubURL), getBrowserCapabilities(browserName));
                setWebDriver(driver);
                getDriver().get(testURL);
                getDriver().manage().window().maximize();
                getDriver().manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
            } else {
                logger.error("Either test URL or Hub URL is empty... So cannot procced with the test execution");
            }
        } catch (Exception exception) {
            logger.error("Something went wrong while initializing the driver");
            exception.printStackTrace();
        }
    }

    @AfterMethod
    public void afterMethodActivities(ITestResult result) {
        logger.info("Performing After Method Activities");
        commonPage = new CommonPage(getDriver());
        try {
            commonPage.closePopup();
        } catch (Exception exception) {
            logger.error("Something went wrong while closing the popup --> After Method");
            //exception.printStackTrace();
        }

        if (result.getStatus() == ITestResult.FAILURE) {
            ExtentTestManager.getTest().log(LogStatus.FAIL, result.getThrowable());
        } else if (result.getStatus() == ITestResult.SKIP) {
            ExtentTestManager.getTest().log(LogStatus.SKIP, "Test skipped " + result.getThrowable());
        } else {
            ExtentTestManager.getTest().log(LogStatus.PASS, "Test passed");
        }

        if(commonPage.isAlertPresent()){
            commonPage.closeAlert();
        }

        ExtentManager.getReporter().endTest(ExtentTestManager.getTest());
        ExtentManager.getReporter().flush();
    }

    public void setObjects() {
        logger.info("Setting the object repository file");
        objectFileName = resourceFolder + "\\" + banner + "\\webobjects.properties";
        logger.info("Banner - " + banner + "/" + "Repository file - " + objectFileName);
        try {
            webObjectProperties = new Properties();
            fip = new FileInputStream(new File(objectFileName));
            webObjectProperties.load(fip);
        } catch (Exception exception) {
            logger.error("Error occurred while reading the webobjects properties file");
            exception.printStackTrace();
        }
    }

    public void setTestData() {
        banner = getBanner();
        logger.info("Setting the test data file");
        if (environment.contains("prod")) {
            testDataFileName = resourceFolder + "\\" + banner + "\\prodtestdata.xml";
        } else {
            testDataFileName = resourceFolder + "\\" + banner + "\\testdata.xml";
        }
        logger.info("Banner - " + banner + "/" + "TestData file - " + testDataFileName);
    }

    public static String getBanner() {
        if (System.getProperty("banner") == null) {
            try {
                return properties.getProperty("banner");
            } catch (Exception exception) {
                logger.error("Error occurred while reading the banner value");
                exception.printStackTrace();
            }
        } else {
            return System.getProperty("banner");
        }
        return "";
    }

    private static DesiredCapabilities getBrowserCapabilities(String browserType) {
        DesiredCapabilities capability;
        switch (browserType) {
        case "firefox":
            System.out.println("Opening firefox driver");
            capability = DesiredCapabilities.firefox();
            // capability.setCapability("marionette", true);
            capability.setBrowserName("firefox");
            capability.setVersion("ANY");
            capability.setPlatform(Platform.ANY);
            return capability;
        case "chrome":
            System.out.println("Opening chrome driver");
            return DesiredCapabilities.chrome();
        case "internet explorer":
            System.out.println("Opening IE driver");
            capability = DesiredCapabilities.internetExplorer();
            System.out.println("IE PlatForm : " + capability.getPlatform());
            System.out.println("IE Browser Name :" + capability.getBrowserName());
            capability.setPlatform(Platform.WINDOWS);
            capability.setBrowserName("internet explorer");
            capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
            capability.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
            capability.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
            return capability;
        case "safari":
            System.out.println("Opening Safari driver");
            capability = DesiredCapabilities.safari();
            SafariOptions safariOptions = new SafariOptions();
            safariOptions.setUseCleanSession(true);
            safariOptions.setUseTechnologyPreview(true);
            capability.setCapability(SafariOptions.CAPABILITY, safariOptions);
            capability.setPlatform(Platform.MAC);
            return capability;
        default:
            System.out.println("browser : " + browserType + " is invalid, Launching Firefox as browser of choice..");
            return DesiredCapabilities.firefox();
        }
    }