“Cypress.env vs Cypress.config: Entenda as diferenças e quando usar cada um”
A diferença entre os métodos Cypress.env e Cypress.config está em como eles são usados e o tipo de informações que armazenam no contexto dos testes escritos com Cypress.
Cypress.env
O Cypress.env é usado para armazenar variáveis de ambiente. Estas são variáveis que você pode usar para configurar informações dinâmicas ou sensíveis, como URLs de APIs, credenciais, chaves de acesso, etc.
O Cypress.env possui as seguintes características:
- É ideal para valores que podem variar entre ambientes (desenvolvimento, homologação, produção).
- Geralmente configurado no arquivo
cypress.env.json(idealmente não versionado, já que pode conter dados sensíveis); como variáveis de ambiente globais prefixadas porCYPRESS_; ou via linha de comando. - Acessível em qualquer lugar dos testes através do seguinte comando:
Cypress.env('nomeDaVariavel'). - Pode ser alterado durante a execução do teste com o seguinte comando:
Cypress.env('nomeDaVariavel', valor).
- Exemplo:
// cypress.env.json
{
"apiUrl": "https://api.exemplo.com",
"authToken": "123456"
}
No código:
const apiUrl = Cypress.env('apiUrl');
cy.request(`${apiUrl}/users`);
Cypress.config
O Cypress.config é usado para acessar ou modificar as configurações do Cypress em tempo de execução. Ele lida com parâmetros relacionados à execução dos testes, como o baseUrl, tempo limite de comandos (defaultCommandTimeout), resolução da janela, etc.
O Cypress.config possui as seguintes características:
- É usado para configurações específicas do framework.
- Geralmente configurado no arquivo
cypress.config.jsou modificado durante a execução. - Acessível em qualquer lugar dos testes através do seguinte comando:
Cypress.config('nomeDaConfiguracao'). - Pode ser atualizado temporariamente com o seguinte comando:
Cypress.config('nomeDaConfiguracao', valor).
- Exemplo:
// cypress.config.js
export default {
e2e: {
baseUrl: 'https://meusite.com',
defaultCommandTimeout: 10000
}
};
No código:
const baseUrl = Cypress.config('baseUrl');
cy.url().should('be.equal', baseUrl); // Verifica que a URL atual é a mesma que a baseUrl
Resumo das diferenças
| Característica | Cypress.env | Cypress.config |
|---|---|---|
| Propósito | Variáveis de ambiente | Configurações do framework |
| Armazenamento | Dados dinâmicos ou sensíveis | Configurações como baseUrl e timeouts |
| Origem | cypress.env.json, variáveis de ambiente globais ou CLI | cypress.config.js |
| Acesso | Cypress.env('variavel') | Cypress.config('configuracao') |
| Modificável | Sim, durante os testes | Sim, durante os testes |
Quando usar cada um?
- Use
Cypress.envpara armazenar informações que variam por ambiente ou são confidenciais (URLs, credenciais, etc.) - Use
Cypress.configpara ajustar ou acessar configurações do Cypress durante os testes (comobaseUrl, timeouts ou viewport).
Para mais detalhes, consulte a documentação oficial do Cypress sobre variáveis de ambiente e configurações do Cypress.
Gostou do conteúdo? Deixe um comentário.
Quer aprender mais sobre automação de testes web? Conheça os cursos da Escola TAT.
- Elementos do Design de Testes Automatizados
- Cypress Playground
- Cypress, do Zero à Nuvem
- Cypress intermediário
- Cypress avançado
- Boas práticas em automação de testes com Cypress
- Testes end-to-end com Cypress
👋 Até a próxima e bons testes!