在运行cypress测试时,如何指定用于开发服务器的.env文件?这些是系统级环境变量,而不是柏树测试环境变量。
我有一个环境文件,我想在运行cypress测试时用于我的服务器:.env.local.cypress
在我的包里。
"dev-server": "nodemon --delay 5ms -e ts,tsx --watch ./src -x ts-node --transpile-only ./src/server",
"cy:run": "cypress run",
"test:e2e:local": "dotenv -e .env.local.cypress -- start-server-and-test dev-server http://localhost:3000 cy:run"
当我运行test:e2e:local
时,服务器以正确的环境启动,但测试没有。知道为什么吗?
您可以通过几种方式在cypress.config.js
中拾取任何全局环境变量。
通过dotenv CLI(根据您的示例)
const { defineConfig } = require("cypress");
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
config.env = {
...process.env, // add all process env var here
...config.env // plus any command line overrides
}
return config
},
},
})
给你所有当前定义的在系统级,包括那些通过dotenv CLI添加的
你可以添加特定的变量:
config.env = {
abc: process.env.abc,
...config.env
}
通过local dotenv install
或者您可以在本地使用dotenv
包来加载cypress.config.js
npm install dotenv --save
const { defineConfig } = require("cypress");
const local = require('dotenv').config({ path: '.env.local.cypress' })
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
config.env = {
...local.parsed,
...config.env
}
return config
},
},
})