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