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

如何在Rider/Visual Studio中于Docker容器内运行/调试测试

完全可以实现,以下是不同场景的具体操作方案:

方案1:IDE内直接配置Docker测试环境(适用于VS、Rider等主流.NET IDE)

该方案支持你在测试资源管理器点击运行/调试按钮时,自动在Docker容器内执行测试,同时自动启动Redis依赖。

  • 首先确认你的项目根目录已有可正常构建的Dockerfile,且Dockerfile中已经包含测试依赖的环境配置(如.NET SDK、运行时依赖等)
  • 如果你使用Visual Studio:
    • 右键测试项目 → 选择「添加」→「Docker 支持」,选择你常用的操作系统类型(Linux/Windows),IDE会自动生成docker-compose相关配置文件
    • 打开生成的docker-compose.yml,添加Redis服务配置,示例如下:
      version: '3.4'
      services:
        your-test-service:
          image: ${DOCKER_REGISTRY-}yourtestservice
          build:
            context: .
            dockerfile: YourTestProject/Dockerfile
          depends_on:
            - redis
          # 配置启动时自动执行测试,如需调试可注释该行
          command: dotnet test
        redis:
          image: redis:latest
          ports:
            - "6379:6379"
      
    • 将运行启动项切换为「docker-compose」,后续点击测试资源管理器的运行/调试按钮即可自动在容器内执行测试,Redis容器会随测试自动启停,调试时断点可正常命中,和本地调试体验完全一致
  • 如果你使用JetBrains Rider:
    • 打开「运行/调试配置」→ 点击+号,选择「Docker Compose」
    • 选择你的docker-compose.yml文件,配置启动服务包含测试服务和Redis服务
    • 在测试设置中,将默认测试运行器关联该Docker Compose配置即可,调试体验和本地完全一致
方案2:命令行dotnet test走Docker环境的通用方案

该方案支持你直接执行命令就能在Docker内跑完全部测试,逻辑和CI环境完全对齐。

  • 在项目根目录新建对应平台的执行脚本:
    • Linux/macOS 新建test-in-docker.sh:
      # 构建测试镜像
      docker build -t my-test-image .
      # 后台启动Redis容器
      docker run -d --name test-redis redis:latest
      # 运行测试容器,关联Redis网络,执行dotnet test
      docker run --rm --link test-redis:redis my-test-image dotnet test --logger "console;verbosity=detailed"
      # 测试结束自动销毁Redis容器
      docker rm -f test-redis
      
    • Windows 新建test-in-docker.ps1:
      # 构建测试镜像
      docker build -t my-test-image .
      # 后台启动Redis容器
      docker run -d --name test-redis redis:latest
      # 运行测试容器,关联Redis网络,执行dotnet test
      docker run --rm --link test-redis:redis my-test-image dotnet test --logger "console;verbosity=detailed"
      # 测试结束自动销毁Redis容器
      docker rm -f test-redis
      
  • 后续执行测试时直接运行对应脚本即可,不需要手动管理Redis容器

注意:请将测试配置中的Redis连接地址修改为容器服务名(如上述配置中的redis)而非localhost,保证容器内的测试服务可以正常访问Redis实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 16:24:10