首页 > 解决方案 > 如何将环境变量添加到服务器,由赛普拉斯测试运行?

问题描述

我的 package.json 文件是

"scripts": {
    "start": "concurrently \"nodemon index.js\" \"PORT=3000 react-scripts start\"",
    "build": "react-scripts build",
    "server": "NODE_ENV=production nodemon index.js",
    "dev": "NODE_ENV=development nodemon index.js",
    "test": "react-scripts test",
    "eslint": "eslint .",
    "cypress:open": "cypress open",
    "start:test": "NODE_ENV=test concurrently \"NODE_ENV=test nodemon index.js\" \"NODE_ENV=test PORT=3000 react-scripts start\""
  },

我在节点 app.js 中创建的路由器是

if (process.env.NODE_ENV === 'test') {
  const testingRouter = require('./controllers/testing')
  app.use('/api/testing', testingRouter)
}

但是当我运行 cypress test 它抱怨没有这样的路由器。如何在调用 npm run cypress:open 命令时制作 NODE_ENV=test?

以及如何通过 console.log(process.env.NODE_ENV) 查看是否将其传递给 cypres 进程?

标签: node.jsreactjsproxycypressreact-fullstack

解决方案


解决了

"start:test": "cross-env NODE_ENV==test concurrently \"cross-env NODE_ENV=test nodemon index.js\" \"cross-env NODE_ENV=test PORT=3000 react-scripts start\""

和 npm run start:test 在一个命令提示符下运行命令,并在另一个命令提示符下运行 cypress


推荐阅读