Enhancing Cypress Tests with .env File Environment Variables


Environment variables are essential in software development for managing configurations and secrets without hardcoding them into the source code. This guide will explore leveraging environment variables in your Cypress end-to-end tests using a .env
file.
Why Use Environment Variables?
Using environment variables helps you:
Manage configurations for different environments (development, staging, production).
Keep sensitive information like API keys and passwords out of your codebase.
Simplify the process of updating configurations without changing your code.
Setting Up Cypress with dotenv
Cypress does not natively support reading from a .env
file. However, we can achieve this by using the dotenv
package.
Step 1: Install dotenv
First, you need to install the dotenv
package. Run the following command in your Cypress project directory:
npm install dotenv
Step 2: Create a .env File
Create a .env
file in the root of your project directory. This file will hold your environment variables. Here's an example:
CYPRESS_BASE_URL=https://example.com
CYPRESS_API_KEY=your_api_key
Step 3: Load .env Variables in cypress.config.js
You need to modify the cypress.config.js
file to load the environment variables from the .env
file. Here's how you can do it:
const dotenv = require('dotenv');
// Load environment variables from .env file
dotenv.config();
module.exports = {
e2e: {
setupNodeEvents(on, config) {
// You can modify the config here if needed
config.env.BASE_URL = process.env.CYPRESS_BASE_URL;
config.env.API_KEY = process.env.CYPRESS_API_KEY;
return config;
},
// Other Cypress configurations...
}
};
Step 4: Use Environment Variables in Tests
Now that you’ve set up the environment variables, you can use them in your Cypress tests. For example:
describe('My Test Suite', () => {
it('should visit the base URL', () => {
cy.visit(Cypress.env('BASE_URL'));
});
});
Best Practices
Do Not Commit .env Files: Make sure to add your
.env
file to.gitignore
to avoid committing sensitive information to your version control system.Use Environment Variables for Sensitive Data: Always use environment variables for sensitive data like API keys, tokens, and passwords.
Document Environment Variables: Maintain documentation or an example
.env
file (.env.example
) to help other developers understand which variables are needed.
Subscribe to my newsletter
Read articles from NonStop io Technologies directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

NonStop io Technologies
NonStop io Technologies
Product Development as an Expertise Since 2015 Founded in August 2015, we are a USA-based Bespoke Engineering Studio providing Product Development as an Expertise. With 80+ satisfied clients worldwide, we serve startups and enterprises across San Francisco, Seattle, New York, London, Pune, Bangalore, Tokyo and other prominent technology hubs.