使用R TestThat软件包的GitLab CI

djc*_*man 5 r gitlab testthat

任何人都可以使用GitLab.com持续集成工具运行对最小R包进行测试的test吗?我的尝试:
https :
//gitlab.com/djchapman/CI_example这是我正在使用的.gitlab-CI.yml文本,

image: rocker/rstudio
test:
   script:
    - R -e 'install.packages(c("devtools", "testthat"))'
    - R CMD build . --no-build-vignettes --no-manual
    - PKG_FILE_NAME=$(ls -1t *.tar.gz | head -n 1)
    - R CMD check "${PKG_FILE_NAME}" --no-build-vignettes --no-manual
    - R -e 'devtools::test()'
Run Code Online (Sandbox Code Playgroud)

从本网站改编而成。我意识到devtools具有依赖关系,在安装软件包时可能需要包括这些依赖关系,我尝试过这样做,但是git2r的库似乎未正确安装,现在我想知道我是否要解决这个问题。谢谢。

Ral*_*ner 5

您不需要通过运行测试,devtools因为R CMD check已经这样做了。以下应该工作:

image: rocker/rstudio
test:
   script:
    - R -e 'install.packages(c("testthat"))'
    - R CMD build . --no-build-vignettes --no-manual
    - PKG_FILE_NAME=$(ls -1t *.tar.gz | head -n 1)
    - R CMD check "${PKG_FILE_NAME}" --no-build-vignettes --no-manual
Run Code Online (Sandbox Code Playgroud)

另外,您可以使用允许二进制安装的映像:

image: rocker/r-base
test:
   script:
    - apt-get update
    - apt-get install --yes --no-install-recommends r-cran-testthat r-cran-devtools
    - R -e "devtools::install_deps()"
    - R CMD build . --no-build-vignettes --no-manual
    - PKG_FILE_NAME=$(ls -1t *.tar.gz | head -n 1)
    - R CMD check "${PKG_FILE_NAME}" --no-build-vignettes --no-manual
Run Code Online (Sandbox Code Playgroud)

如果您具有尚未打包为Debian打包的依赖项,或者不想在添加新的依赖项时更新CI脚本,这将很有用。

  • 请注意,如果您有任何依赖于描述文件的建议部分中的包的测试,则应读取“devtools::install_deps(dependency = TRUE)”。默认行为是忽略建议的包。 (2认同)