[英]Add env variable in package.json brefore cypress runs in headless mode
我想知道 cypress 是否在 NextJS 应用程序中运行。 如果赛普拉斯测试正在运行,我的想法是阻止 NextJS 应用程序中的一些 http 请求。
当我为这样的浏览器运行“npx cypress open”时,我能够捕捉到 cypress 是否正在运行:
if(window.Cypress){
// prevent http request or do something
}
但我无法使用"npx cypress run"
命令检查 cypress 是否正在运行。
我尝试在package.json
文件中添加额外的 env 变量,如下所示:
...
"cy:run": "cross-env CY_MODE=true cypress run",
...
但是当我尝试记录process.env.CY_MODE
时,它没有设置 CY_MODE 环境变量。
如何在 cypress 测试以无头模式开始之前设置自定义环境变量?
谢谢
您可以在 package.json 中设置 env.variables:
'parentCommand': 'cross-env CY_MODE=true npx cypress run'
默认情况下,环境变量仅在 Node.js 环境中可用,这意味着它们不会暴露给浏览器。
为了向浏览器公开变量,您必须在变量前面加上NEXT_PUBLIC_ 。
"cy:run": "cross-env NEXT_PUBLIC_CY_MODE=true cypress run",
或者,您可以从赛普拉斯插件控制 NextJs 服务器 - 请参阅使用 Next.js getServerSideProps 调用时的模拟网络
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.