问题
I have set my environment variables in 'Cypress.env.json' file, while running the cypress test, it read the Cypress.env variables successfully. But to be more on the security aspect, rather than 'hard-cording' the values, my team asked me to keep this variable as separate 'parameters' which read from Windows 10 Environment variables. How do I achieve this ? It would be really helpful if someone could advise on this.
{
"QA_Server": "https://sometestingsite.com",
"username": "testQA",
"password": "Password1234!"
}
回答1:
From cypress documentation here:
Any environment variable on your machine that starts with either CYPRESS_ or cypress_ will automatically be added and made available to you.
Conflicting values will override values from cypress.json and cypress.env.json files.
Cypress will strip off the CYPRESS_ when adding your environment variables.
Exporting cypress env variables from the command line:
export CYPRESS_HOST=laura.dev.local
export cypress_api_server=http://localhost:8888/api/v1/
If you're using Windows you can set env variables using set or setx commands.
And in your test files you can call this:
Cypress.env() // {HOST: "laura.dev.local", api_server: "http://localhost:8888/api/v1"}
Cypress.env("HOST") // "laura.dev.local"
Cypress.env("api_server") // "http://localhost:8888/api/v1/"
来源:https://stackoverflow.com/questions/52416304/how-does-cypress-io-read-the-windows-environment-variables