【问题标题】:Run unit tests on git push and integration tests on pull request在 git push 上运行单元测试,在 pull request 上运行集成测试
【发布时间】:2020-05-07 18:19:24
【问题描述】:

在构建 R 包时,我们使用 testthat 来编写测试。我们有 2 个文件:一个用于特定包的测试文件 (specific.R),另一个用于确保所有包继续协同工作并且整体结果良好(overall .R)。当我们推送到 github 或通过 Travis 创建 PR 时,这两个测试当前都在运行,它隐式运行这行代码 (R CMD check *tar.gz)。 check 运行 test 文件夹中的所有测试,因此两个文件都运行。

现在,我对测试有点陌生...但似乎我们或多或少地重新创建了 unit testintegration test 之间的差异>.

考虑到 overall.R 的测试确实需要更长的时间才能运行,我们希望限制它,以便它们仅在我们对包执行拉取请求时运行(当我们在不同的dev 分支),而每次我们提交/推送到 repo 时,特定于包的测试都会继续运行。

这在 github 或 Travis 中是否可行?

【问题讨论】:

    标签: r unit-testing github integration-testing travis-ci


    【解决方案1】:

    您可以将您的整体.R 脚本放入不同的目录,然后将此文件夹指定为拉取请求挂钩的新测试目录,但这只会运行您的集成测试而不是单元测试。见 R CMD 检查 --help

    R CMD check --test-dir integration_tests package.tar.gz
    

    【讨论】:

    • 谢谢,我使用的 testthat 方法只测试一个测试。目前正试图弄清楚如何让 Travis 运行失败......我会在收到后回复。
    猜你喜欢
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 2012-11-28
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多