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

CircleCI运行RSpec测试报Redis::CannotConnectError该如何解决

你遇到的Redis::CannotConnectError报错是因为CircleCI运行测试的环境中没有启动Redis服务,你当前的配置仅声明了Ruby运行环境和PostgreSQL数据库两个Docker容器,Sidekiq测试需要连接的6379端口无对应服务响应,按以下步骤修改配置即可解决:

第一步:新增Redis服务容器

修改你的config.yml中jobs.build.docker配置块,追加Redis兼容镜像,修改后docker块如下:

docker:
  - image: cimg/ruby:2.7.3-browsers
    environment:
      BUNDLE_JOBS: 3
      BUNDLE_RETRY: 3
      BUNDLE_PATH: vendor/bundle
      PGHOST: 127.0.0.1
      PGUSER: myapp
      RAILS_ENV: test
      CAPYBARA_DEFAULT_MAX_WAIT_TIME: 10
  - image: circleci/postgres:9.5-alpine # database image
    environment: # environment variables for database
      POSTGRES_USER: myapp
      POSTGRES_DB: myapp
      POSTGRES_PASSWORD: mypass
  # 新增Redis服务镜像
  - image: cimg/redis:6.2

第二步:新增等待Redis启动的校验步骤

在原有「等待DB」步骤之后,新增等待Redis端口就绪的步骤,避免Redis还没启动完成就跑测试:

- run:
    name: 等待Redis启动
    command: dockerize -wait tcp://localhost:6379 -timeout 1m

如果你的测试环境Redis配置了密码、自定义端口,可以在Redis镜像的environment块添加对应配置,同时修改Rails测试环境的Redis连接参数匹配即可。你现有配置中的Chrome Driver相关配置已经满足Sidekiq GUI功能测试的要求,不需要额外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:06:02