You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright测试调用pg连接PostgreSQL遇异常:测试消失+模块缺失

Playwright测试数据库连接问题分析与解决方案

异常1:命令行提示「Error: Cannot find module 'pg'」

原因

  • package.json的dependencies中仅存在@types/pg(PostgreSQL的TypeScript类型定义包),缺少实际的pg核心包。
  • 执行npm install pg --save后未成功将包写入dependencies,大概率是npm缓存异常或命令执行环境的问题。

解决方案

  1. 重新安装pg包并确保写入生产依赖:
    npm install pg --save
    
  2. 若安装后pg仍未出现在dependencies中,清理npm缓存后重试:
    npm cache clean --force
    npm install pg --save
    
  3. 验证package.json的dependencies中出现类似配置(版本号以实际安装为准):
    "dependencies": {
      "@types/pg": "^8.11.6",
      "pg": "^8.12.0"
    }
    

异常2:Playwright测试UI中shopping-cart.spec.ts消失,显示db-connection.ts

原因

当pg包缺失导致db-connection.ts抛出模块未找到错误时,Playwright的错误追踪会直接定位到错误发生的文件(即db-connection.ts),从而覆盖了原本的测试文件入口显示。

解决方案

该异常是异常1的衍生问题,解决pg包缺失问题后,测试UI会自动恢复显示shopping-cart.spec.ts。额外建议:

  • 完善数据库操作函数的错误捕获逻辑,避免未处理的异常干扰测试流程的展示。

额外潜在问题修复

db-connection.ts中导入的envConfig在当前playwright.config.ts中未定义导出,会导致后续运行时出现「找不到envConfig」的错误:

  1. 在playwright.config.ts中添加envConfig导出:
    export const envConfig = {
      DB_USERNAME: process.env.DB_USERNAME,
      DB_HOST: process.env.DB_HOST,
      DB_PORT: process.env.DB_PORT,
      DB_NAME: process.env.DB_NAME,
    };
    
  2. 确保对应环境的.env文件(如.env.local、.env.prod)中正确配置了数据库相关的环境变量。

内容的提问来源于stack exchange,提问作者Sim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 05:14:53