在运行cypress测试时,如何指定.env文件用于我的开发服务器?



在运行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

中的特定env文件。
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     
},
},
})

相关内容

  • 没有找到相关文章

最新更新