visual-studio-code - 在 Visual Studio Code 中调试 Cypress 测试
问题描述
我想使用 VS Code 来编辑和调试 Cypress 测试。cypress 文档直接提到了 VS Code,但没有提供任何关于如何配置 VS Codelaunch.json
文件以进行调试的线索,无论是在那里还是在调试页面上。
我有一个launch.json
启动 cypress/electron 的配置,但是 VS Code 给出了这个错误:
无法连接到运行时进程...连接 ECONNREFUSED 127.0.0.1:5858
然后将其关闭。
查看 VS Code 项目的示例电子没有帮助,添加protocol
或program
属性也不起作用。
这是我的配置:
{
"name": "Start integration_tests",
"type": "node",
"request": "launch",
"stopOnEntry": false,
"cwd": "${workspaceRoot}",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/cypress",
"runtimeArgs": [
"open"
],
"console" : "internalConsole",
"port": 5858,
}
解决方案
@fhilton 的答案曾经有效,但对于较新版本的赛普拉斯,它将导致 Chrome 无法连接到测试运行器并且无法运行任何测试。改用这个:
如果您或您的任何同事在 Windows 中开发,请运行
npm i -D cross-env
.在 package.json 添加一个脚本来启动 Cypress 测试运行器(或者如果你已经有一个脚本,
cypress open
那么就修改它)。您希望脚本在运行之前将CYPRESS_REMOTE_DEBUGGING_PORT
环境变量设置为类似的值。由于我使用的是 Windows,所以我使用npm 包来设置环境变量。因此,我的 package.json 中的脚本看起来像9222
cypress open
cross-env
"scripts": { "cypr": "cross-env CYPRESS_REMOTE_DEBUGGING_PORT=9222 cypress open", },
将以下内容添加到
configurations
您的 launch.json 的列表中(注意与上面相同的端口){ "type": "chrome", "request": "attach", "name": "Attach to Cypress Chrome", "port": 9222, "urlFilter": "http://localhost*", "webRoot": "${workspaceFolder}", "sourceMaps": true, "skipFiles": [ "cypress_runner.js", ], },
把这个词
debugger
放在你的测试中。请参阅Cypress Doc 中的调试。或者,如果您对源映射有信心,请使用 vscode 在代码中放置断点。运行
npm run cypr
(或任何你称之为 npm 脚本的东西)从 Cypress 测试运行器,开始在 Chrome 中运行测试
使用新的“附加到赛普拉斯 Chrome”配置启动 vscode 调试器
重新启动带有断点的测试并调试!
推荐阅读
- azure - 如何在时间表渲染中设置 ymin 和 ymax?
- c++ - 如何组织结构中的成员以在对齐上浪费最少的空间?
- flutter - 使用网格布局的文本和文本字段
- powerbi - 函数日期的参数有错误的数据类型或结果太小或太大错误
- excel - 将工作簿转换为 HTML 后,如何隐藏隐藏列?
- python - 在张量流中使用 1D CNN 对可变长度的时间序列进行分类
- python - 在 Python 列表理解中使用带有 if/elif 语句的“for”循环
- php - .htaccess 动态子域
- android - 加载原生 Android 库时,优先选择某些 CPU 架构
- amazon-web-services - 无法从 Spark 连接到 AWS Elasticsearch