【问题标题】:Run testthat tests on only one GitHub actions job仅在一项 GitHub 操作作业上运行 testthat 测试
【发布时间】:2021-06-08 01:28:21
【问题描述】:

package 的某些测试需要在单个测试服务器上反复删除和写入数据。我不能同时运行这些测试,因为它们会相互干扰。

三个目标:

  1. 我想在三种不同的操作系统(Ubuntu、macOS 和 Windows)上运行 GitHub Action 作业。
  2. 我只想在 GitHub 上的 Ubuntu 作业上运行 delete+write 测试——我只想在 Mac 和 Windows 上跳过它们,前提是它在 GitHub 操作上运行。
  3. 但我不希望它们在某人的本地 mac 或 Windows 机器上运行时被跳过(和Win-Builder)。从理论上讲,两个开发人员可以互相踩到对方的脚趾,但这种情况发生得太少,根本不在乎。

几点说明:

  • 理想情况下,目标服务器的一个版本会临时启动并托管在 GitHub 操作中。但是我不确定 REDCap 许可证是否允许这样做。
  • 约 200 次测试中约有 20% 的检查应被跳过。其余的要么不调用服务器,要么是只读操作。因此,两个作业/操作系统是否同时运行它们并不重要。
  • 在所有作业中,应运行 R-CMD 检查的所有非测试部分(例如,检查包依赖关系和小插曲)。

有没有办法将testthat skipsGitHub Action environmental variables 结合起来?有没有更好的解决方案?

【问题讨论】:

    标签: r github-actions testthat


    【解决方案1】:

    jobs.<job_id>.steps[*].if 是否有助于实现您的目标?例如,如果您为 macOS、Ubuntu 和 Windows 设置了一个矩阵操作系统构建,并且有一个用于测试设置、执行和拆卸的步骤,您可以在该步骤中添加一个 if 指令以仅在操作系统以“ubuntu”开头:if: startsWith(${{matrix.os}}, 'ubuntu')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-11
      • 2021-05-22
      • 1970-01-01
      • 2023-01-05
      • 2020-01-28
      • 2022-08-17
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多