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

如何为R Shiny应用实现自动化测试以支撑持续交付流程?

R Shiny应用持续交付流程实现方案

前置准备

  • 给主应用仓库、测试用例仓库、生产环境仓库配置拥有读写权限的Personal Access Token(PAT),需开启仓库读写、Workflow触发权限,将PAT存入主应用仓库的Secrets配置项中
  • 主应用仓库提前配置R依赖声明文件(如DESCRIPTION、renv.lock),确保测试运行时依赖版本可复现
  • 测试用例仓库整理所有测试脚本,统一执行入口为run_tests.R,注意测试不通过时脚本需要返回非0退出码,才能被流水线识别为失败

核心配置(基于GitHub Actions)

在主应用仓库下创建.github/workflows/cd.yml配置文件,内容如下:

name: R Shiny CD Pipeline
# 触发规则:推送到指定分支时自动执行
on:
  push:
    branches: [ main ] # 替换为你需要触发流水线的分支名

jobs:
  delivery:
    runs-on: ubuntu-latest
    steps:
      # 步骤1:拉取主应用代码
      - name: Checkout main app repo
        uses: actions/checkout@v4
        with:
          path: shiny-app
          token: ${{ secrets.PAT }} # 对应你提前存入仓库Secrets的PAT变量名

      # 步骤2:拉取独立测试用例仓库代码
      - name: Checkout test case repo
        uses: actions/checkout@v4
        with:
          repository: 你的GitHub用户名/测试用例仓库名 # 替换为实际测试仓库地址
          path: test-suite
          token: ${{ secrets.PAT }}

      # 步骤3:配置R运行环境
      - name: Setup R environment
        uses: r-lib/actions/setup-r@v2

      # 步骤4:安装应用依赖
      - name: Install app dependencies
        working-directory: shiny-app
        run: |
          install.packages("renv")
          renv::restore()
        shell: Rscript {0}

      # 步骤5:执行全量测试用例
      - name: Run all tests
        working-directory: shiny-app
        run: Rscript ../test-suite/run_tests.R

      # 步骤6:测试通过后同步代码到生产仓库
      - name: Sync to production repo
        if: success() # 仅所有前置步骤执行成功时运行
        working-directory: shiny-app
        run: |
          git config --global user.name "CD Bot"
          git config --global user.email "cd-bot@local.dev"
          git remote add production https://${{ secrets.PAT }}@github.com/你的用户名/生产仓库名.git
          git push production main:main

效果验证

  • 向主应用仓库推送测试变更,查看Actions运行日志,确认测试失败时流水线自动终止,不会同步到生产仓库
  • 测试通过时,确认生产环境仓库对应分支已自动更新为最新代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:06:02