Как мне запустить Nightwatch.js тесты в Дженкинсе?

#node.js #jenkins #tfs #nightwatch.js

#node.js #Дженкинс #tfs #nightwatch.js

Вопрос:

Я хотел бы реализовать CI / CD с тестами пользовательского интерфейса, которые я написал, для автоматического запуска моего Nightwatch.js тест проводите каждую ночь. Я попытался скопировать свои файлы в рабочую область в jenkins и запустить их. Я пытался использовать TFS в качестве системы контроля версий, чтобы посмотреть, сможем ли мы заставить ее работать таким образом. Проблема, с которой я продолжаю сталкиваться (см. Прилагаемое), заключается в том, что при локальном запуске браузер Chrome открывается и отлично выполняет тесты. Однако в Jenkins говорится, что он не может найти элемент. Я исследовал, как запускать chrome без головы, но я по-прежнему получаю ту же ошибку, когда добавляю тег —headless в свой конфигурационный файл nightwatch.json. Итог, как я могу получить Nightwatch.js тесты будут выполняться по расписанию на ночь? (желательно в jenkins)

Пробовал запускать тесты из системы управления версиями tfs, пробовал запускать тесты из локальных тестов, скопированных в jenkins workspace. пробовал запускать безголовые тесты (локально работает, Дженкинс не работает)https://developers.google.com/web/updates/2017/04/headless-chrome

Вот мой файл nightwatch.json.

 {
    "src_folders" : ["tests"],
    "output_folder" : "reports/XMLReports",
    "custom_commands_path" : "",
    "custom_assertions_path" : "",
    "page_objects_path" : "dealer",
    "globals_path" : "",
    "test_workers": false,
    "selenium": {
      "cli_args": {
        "webdriver.chrome.driver" : "node_modules/.bin/chromedriver.cmd",
        "webdriver.gecko.driver" : "node_modules/.bin/geckodriver.cmd",
        "webdriver.edge.driver" : "node_modules/.bin/edgedriver.cmd"
    },
    "log_path": "",
    "port": 4460,
    "server_path": "lib/drivers/selenium-server-standalone-3.141.59.jar",
    "start_process": true
  },

    "test_settings" : {
      "chrome" : {
        "launch_url" : "http://localhost",
        "selenium_port"  : 4460,
        "selenium_host"  : "127.0.0.1",
        "silent": true,
        "screenshots" : {
          "enabled" : false,
          "path" : "screenshots/Chrome/"
        },
        "desiredCapabilities": {
          "browserName": "chrome",
          "chromeOptions":{
                "args": [
                  "disable-web-security",
                  "ignore-certificate-errors",
                  "--test-type",
                  "--disable-gpu",
                  "--headless",
                  "--remote-debugging-port=9222"
                ]
            }          
        }
      },

      "edge" : {
        "desiredCapabilities": {
          "browserName": "MicrosoftEdge"
        }
      }
    }
  }
  

Я бы ожидал, что мои тесты будут выполняться в jenkins нормально и предоставят мне подробный отчет, если он прошел или не прошел в пользовательском интерфейсе.Ошибка, полученная от Jenkins

Ответ №1:

Похоже, что .windowMaximize() вызывал зависание и сбой моих тестов в Jenkins.

Комментарии:

1. как мне это сделать?

2. @Jackson это была просто проблема .windowMaximize()?