Cypress Template Fixtures
Allow using {{ENVIRONMENT_VARIABLE}}
in Cypress fixture files.
Setup
Install this package by run npm i -D cypress-template-fixtures
or yarn add -D cypress-template-fixtures
.
Add require('cypress-template-fixtures')(on, config);
in the cypress/plugins/index.js
.
module.exports = (on, config) => {
require('cypress-template-fixtures')(on, config);
return config;
};
Also add cypress/fixtures.out/
into ignore list of you VCS. E.g. the .gitignore
for Git.
Write Fixtures with variables
When writing a fixture data in cypress/fixtures
, you can use environment variables.
Put the environment variable name in between {{
and }}
. Eg. {{NODE_ENV}}
{{MY_VARIABLE}}
.
Provide Environment Variables
Please refer to the doc here.
- From
env
field in cypress.json
, don't have to use CYPRESS_
or cypress_
prefixes. - From
cypress.env.json
, don't have to use CYPRESS_
or cypress_
prefixes. - From command line or system environment variables, have to use
CYPRESS_
or cypress_
prefixes. - Using cypress-dotenv, have to use
CYPRESS_
or cypress_
prefixes unless set the all
parameter to true.
Note, if you use cypress-dotenv make sure enable it before cypress-template-fixtures.
module.exports = (on, config) => {
config = require('cypress-dotenv')(config);
require('cypress-template-fixtures')(on, config);
return config
};
How it works
- When running
cypress run
or cypress open
this plugin will copy all fixtures in cypress/fixtures
into cypress/fixtures.out
with sub-folders structure preserved. - When copying text fixtures (
.json
, .js
, .coffee
, .html
, .txt
, .csv
) the variables like {{MY_VARIABLE}}
will be replaced with the related environment variable value like MY_VARIABLE
. - This plugin will also change the
fixturesFolder
config to cypress/fixtures.out
so that cypress will use the fixtures there.
Limitations
For simplicity, change the fixtures after cypress open
may not regenerated automatically, you should rerun cypress open
.