Spec-Zone.ru › Cypress

Cypress.config

get и set параметры конфигурации в ваших тестах.

Новичок в Cypress?

Сначала ознакомьтесь с конфигурацией.

Область действия

Настройка, установленная с помощью Cypress.config действует только для текущего файла спецификаций.

Cypress выполняет каждый файл спецификаций изолированно: браузер закрывается между спецификациями. Изменения конфигурации в одной спецификации не будут видны в других спецификациях.

Примечание

Не все значения конфигурации могут быть изменены во время выполнения. Подробности см. ниже в разделе Примечания.

Синтаксис

Cypress.config()
Cypress.config(name)
Cypress.config(name, value)
Cypress.config(object)

Аргументы

name (Строка)

Имя конфигурации для получения или установки.

value (Строка)

Значение конфигурации для установки.

object (Объект)

Установите несколько параметров конфигурации с помощью литерала объекта.

Примеры

Без аргументов

Получение всех параметров конфигурации из файла конфигурации (cypress.json по умолчанию)

{
  "defaultCommandTimeout": 10000
}
Cypress.config() // => {defaultCommandTimeout: 10000, pageLoadTimeout: 30000, ...}

Имя

Возврат одного параметра конфигурации из файла конфигурации (cypress.json по умолчанию)

{
  "pageLoadTimeout": 60000
}
Cypress.config('pageLoadTimeout') // => 60000

Имя и значение

Изменение значений параметров конфигурации из файла конфигурации (cypress.json по умолчанию) внутри ваших тестов

Область действия

Помните, что все изменения, которые вы вносите в конфигурацию с помощью этого API, будут действовать до конца тестов в том же файле спецификаций.

{
  "viewportWidth": 1280,
  "viewportHeight": 720
}
Cypress.config('viewportWidth', 800)

Cypress.config('viewportWidth') // => 800

Объект

Переопределение нескольких параметров из файла конфигурации (cypress.json по умолчанию) путем передачи литерала объекта

{
  "defaultCommandTimeout": 4000,
  "pageLoadTimeout": 30000
}
Cypress.config({
  defaultCommandTimeout: 10000,
  viewportHeight: 900,
})

Cypress.config() // => {defaultCommandTimeout: 10000, viewportHeight: 900, ...}

Примечания

Не все значения конфигурации могут быть изменены в любое время

Некоторые значения конфигурации являются только для чтения и не могут быть изменены во время выполнения теста. Все, что не указано в параметрах конфигурации теста, не может быть обновлено во время выполнения. Обязательно ознакомьтесь со списком параметров конфигурации теста.

Конфигурация теста против Cypress.config()

Чтобы применить определенные значения конфигурации Cypress к набору или тесту, вы можете передать объект конфигурации теста в функцию теста или набора.

В то время как Cypress.config() изменяет значения конфигурации в течение всего файла спецификаций, использование конфигурации теста изменит значения конфигурации только в течение набора или теста, где они установлены. После завершения набора или теста значения затем вернутся к предыдущим значениям по умолчанию.

См. полное руководство по конфигурации теста.

Cypress.config() выполняется синхронно

Важно отметить, что Cypress.config() выполняется синхронно и не будет ждать выполнения команд Cypress выше него. Если вам нужно обновить конфигурацию во время теста, убедитесь, что вы используете цепочку асинхронную команду Cypress.

it('using cy.then', () => {
  cy.visit('/my-test_page')
  cy.click('#download-html').then(() => {
    Cypress.config('baseUrl', 'null')
  })
  cy.visit('/downloads/contents.html')
})

Почему это Cypress.config, а не cy.config?

Как правило, все, что вы вызываете из Cypress , влияет на глобальное состояние. Все, что вы вызываете из cy , влияет на локальное состояние.

Поскольку конфигурация, добавленная или измененная Cypress.config , действует только в рамках текущего файла спецификаций, можно предположить, что она должна быть cy.config , а не Cypress.config…и вы правы. Тот факт, что Cypress.config влияет на локальное состояние, является артефактом эволюции API с течением времени: Cypress.config ранее влияла на глобальное состояние — конфигурация, добавленная в одном файле спецификаций теста, была доступна в других спецификациях — но команда Cypress разумно сделала каждый файл спецификаций изолированным в 3.0.0, и к тому времени Cypress.config уже был общедоступным API.

История

Версия Изменения
0.12.6 Cypress.config добавлена

См. также

  • конфигурация
  • Руководство по переменным среды
  • Конфигурация теста

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/cypress-api/config

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API