Похоже, что React-router не отображает следующую страницу при реализации безголового теста e2e с использованием Nightwatch / Cucumber - PullRequest
1 голос
/ 13 апреля 2019

Я пытаюсь реализовать тест e2e без головы, используя nightwatch, Cucumber и nightwatch-cucumber (не рекомендуется - после этого, возможно, будет использовать другой e2e, но сейчас я должен заставить его работать) в моем приложении React. Все отлично работает локально, но когда я запускаю безголовый, он либо не загружает следующую страницу, либо не работает css selector. Я сильно думаю, что это первое.

Я вроде как сталкиваюсь с блоком, пытающимся отладить. Любые другие методы отладки будут с благодарностью. Кроме повторного запуска сценария тестирования после изменения файла nightwatch.config и опробования другого селектора CSS, я не знаю, что еще делать.

//test devDependencies
"devDependencies": {
   "chai": "^3.5.0",
   "cucumber": "^4.0.0",
   "cucumber-pretty": "^1.4.0",
   "dotenv": "^5.0.1",
   "https-proxy-agent": "^2.2.1",
   "nightwatch": "^0.9.19",
   "nightwatch-cucumber": "^9.1.0",
   "selenium-server": "^3.9.1",
   "wait-on": "^2.1.0"
}

// nightwatch.config
const seleniumServer = require('selenium-server');
require('dotenv').config({ path: `.env_${process.env.NODE_ENV || `local`}` })
require('nightwatch-cucumber')({
  cucumberArgs: [
    '--require', 'step-definitions',
    '--format', 'node_modules/cucumber-pretty',
    '--format', 'json:reports/test-results.json',
    'features']
});

// Determines if the local enviornment is local or jenkins
const env = process && process.env && process.env.NODE_ENV || `local`;
console.log(`~!~!~!~! ${process.env.NODE_ENV}`)

module.exports = {
    "output_folder": "reports",
    "selenium": {
        "start_process": true,
        "server_path": seleniumServer.path,
        "log_path": "",
        "port": 9876,
        "cli_args": {
            "webdriver.chrome.driver": env === `local` 
                ? `./chromedriver` 
                : `/usr/bin/chromedriver`
        }
    },
    "test_settings": {
        // Used as default
        "default": {
            "selenium_port": 9876,
            "selenium_host": "localhost",
            "desiredCapabilities": {
                "browserName": "chrome",
                "acceptSslCerts": true, 
                "javascriptEnabled": true,
                "acceptInsecureCerts": true,
                "chromeOptions": {
                  "args": [
                      "--headless",
                      "disable-web-security",
                      "ignore-certificate-errors",
                      "no-sandbox",
                      "disable-gpu"
                  ]
                }
            }
        },
        // Used for local chrome browser testing
        "local": {
            "selenium_port": 9876,
            "selenium_host": "localhost",
            "desiredCapabilities": {
                "browserName": "chrome",
                "javascriptEnabled": true,
                "acceptInsecureCerts": true,
                "chromeOptions": {
                  "args": [
                      "disable-web-security",
                      "ignore-certificate-errors",
                      "no-sandbox",
                      "disable-gpu",
                      "window-size=1440,900"
                  ]
                }
            }
        },
        // Used for PR build pipeline
        "build": {
            "selenium_port": 9876,
            "selenium_host": "localhost",
            "desiredCapabilities": {
                "browserName": "chrome",
                "javascriptEnabled": true,
                "acceptInsecureCerts": true,
                "chromeOptions": {
                  "args": [
                      "headless",
                      "disable-web-security",
                      "ignore-certificate-errors",
                      "no-sandbox",
                      "disable-gpu",
                      "window-size=1440,900"
                  ]
                }
            }
        },
        // Used for Regression
        "redblu": {
            "selenium_port": 8080,
            "selenium_host": "bluxpress-sts.clouddqt.capitalone.com",
            "desiredCapabilities": {
                "browserName" : "chrome",
                "recordVideo" : true,
                "name" : "aviator-ui-test",
                "acceptSslCerts": true,
                "acceptInsecureCerts": true,
                "javascriptEnabled": true,
                "chromeOptions": {
                    "args": [
                        "ignore-certificate-errors",
                        "disable-gpu",
                        "no-sandbox",
                        "start-maximized"
                    ]
                  }
            }
        }
  }
};

У меня есть эта настройка, но когда я запускаю Nightwatch с безголовым, он не работает. Все работает локально, хотя. Разве он не поддерживает макросы в то время?

...