mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-24 09:29:35 -05:00
149 lines
2.7 KiB
Markdown
149 lines
2.7 KiB
Markdown
---
|
|
title: Cypress.config
|
|
comments: false
|
|
---
|
|
|
|
`get` and `set` configuration options *in your tests*.
|
|
|
|
{% note info New to Cypress? %}
|
|
{% url 'Read about configuration first.' configuration %}
|
|
{% endnote %}
|
|
|
|
# Syntax
|
|
|
|
```javascript
|
|
Cypress.config()
|
|
Cypress.config(name)
|
|
Cypress.config(name, value)
|
|
Cypress.config(object)
|
|
```
|
|
|
|
## Usage
|
|
|
|
**{% fa fa-check-circle green %} Correct Usage**
|
|
|
|
```javascript
|
|
Cypress.config() // Get configuration options
|
|
```
|
|
|
|
**{% fa fa-exclamation-triangle red %} Incorrect Usage**
|
|
|
|
```javascript
|
|
cy.config() // Errors, cannot be chained off 'cy'
|
|
```
|
|
|
|
## Arguments
|
|
|
|
**{% fa fa-angle-right %} name** ***(String)***
|
|
|
|
The name of the configuration to get or set.
|
|
|
|
**{% fa fa-angle-right %} value** ***(String)***
|
|
|
|
The value of the configuration to set.
|
|
|
|
**{% fa fa-angle-right %} object** ***(Object)***
|
|
|
|
Set multiple configuration options with an object literal.
|
|
|
|
# Examples
|
|
|
|
## No Arguments
|
|
|
|
**Get all configuration options.**
|
|
|
|
|
|
```javascript
|
|
// cypress.json
|
|
|
|
{
|
|
"defaultCommandTimeout": 10000
|
|
}
|
|
```
|
|
|
|
```javascript
|
|
Cypress.config() // => {defaultCommandTimeout: 10000, pageLoadTimeout: 30000, ...}
|
|
```
|
|
|
|
## Name
|
|
|
|
**Return just a single configuration option value.**
|
|
|
|
|
|
```javascript
|
|
// cypress.json
|
|
|
|
{
|
|
"pageLoadTimeout": 60000
|
|
}
|
|
```
|
|
|
|
```javascript
|
|
Cypress.config("pageLoadTimeout") // => 60000
|
|
```
|
|
|
|
## Name and Value
|
|
|
|
**Cypress allows you to change the values of your configuration options from within your tests.**
|
|
|
|
{% note warning %}
|
|
Any value you change will be permanently changed for the remainder of your tests.
|
|
{% endnote %}
|
|
|
|
|
|
```javascript
|
|
// cypress.json
|
|
|
|
{
|
|
"viewportWidth": 1280,
|
|
"viewportHeight": 720
|
|
}
|
|
```
|
|
|
|
```javascript
|
|
Cypress.config("viewportWidth", 800)
|
|
|
|
Cypress.config("viewportWidth") // => 800
|
|
```
|
|
|
|
**Using config to set `baseUrl`**
|
|
|
|
{% note info %}
|
|
{% url "Check out our example recipe where we reset our `baseUrl` using `Cypress.config()`" logging-in %}
|
|
{% endnote %}
|
|
|
|
## Object
|
|
|
|
**You can set multiple values by passing an object literal.**
|
|
|
|
|
|
```javascript
|
|
// cypress.json
|
|
|
|
{
|
|
"defaultCommandTimeout": 4000,
|
|
"pageLoadTimeout": 30000,
|
|
}
|
|
```
|
|
|
|
```javascript
|
|
Cypress.config({
|
|
defaultCommandTimeout: 10000,
|
|
viewportHeight: 900
|
|
})
|
|
|
|
Cypress.config() // => {defaultCommandTimeout: 10000, viewportHeight: 900, ...}
|
|
```
|
|
|
|
# Notes
|
|
|
|
**Why use `Cypress.config` instead of `cy.config`?**
|
|
|
|
As a rule of thumb anything you call from `Cypress` affects global state. Anything you call from `cy` affects local state.
|
|
|
|
Methods on `cy` are local and specific to a single test. Side effects from `cy` methods are restored between each test. We chose to use `Cypress` because changes to your configuration options take effect for the remainder of **ALL** tests.
|
|
|
|
# See also
|
|
|
|
- {% url 'configuration' configuration %}
|