本文档说明如何调试 E2E 测试。
项目已配置好多个 debug 启动配置,位于 .vscode/launch.json:
调试所有 E2E 测试
使用步骤:
F5 或点击 VS Code 左侧的“运行和调试”图标F5调试当前打开的测试文件
使用步骤:
Session.test.ts)F5 或选择 “Debug Current E2E Test File”调试所有单元测试
调试所有测试(单元测试 + E2E 测试)
npm run test:e2e:debug
npm run test:debug
使用步骤:
chrome://inspectE2E 测试需要连接到 IoTDB 实例。可以通过环境变量配置连接信息:
export IOTDB_HOST=localhost export IOTDB_PORT=6667 export IOTDB_USER=root export IOTDB_PASSWORD=root export LOG_LEVEL=DEBUG # 开启详细日志
创建 .env 文件:
IOTDB_HOST=localhost IOTDB_PORT=6667 IOTDB_USER=root IOTDB_PASSWORD=root LOG_LEVEL=DEBUG
然后在终端中执行:
source .env npm run test:e2e:debug
F9test() 函数内部catch 块--runInBand所有 debug 配置都使用了 --runInBand 参数,这会:
在测试文件中,可以临时使用 test.only() 来只运行特定测试:
test.only("Should execute query statement", async () => { // 只运行这个测试 });
设置 LOG_LEVEL=DEBUG 环境变量可以看到更详细的日志输出:
在代码中直接添加 debugger; 语句:
test("Should insert data", async () => { const tablet = { /* ... */ }; debugger; // 执行到这里会自动暂停 await session.insertTablet(tablet); });
如果没有运行的 IoTDB 实例,可以使用 Docker 快速启动:
docker-compose -f docker-compose-1c1d.yml up -d
docker-compose -f docker-compose-3c3d.yml up -d
docker-compose -f docker-compose-1c1d.yml down
解决方案:
IOTDB_HOST 和 IOTDB_PORT 是否正确docker logs iotdb-datanode解决方案:
--inspect-brk 参数(已在配置中)--runInBand 参数(已在配置中)解决方案:
jest.config.js 中增加超时时间test('...', async () => {...}, 120000)在 VS Code 中右键点击断点,选择“编辑断点” → “表达式”,可以设置条件:
row.length > 10; // 只在满足条件时暂停
不想停止执行,只想输出日志?右键断点选择“Logpoint”:
result.rows.length: {result.rows.length}
在 Debug 面板的 “WATCH” 区域添加表达式,实时监控变量值。
tests/e2e/Session.test.tsF5 开始调试