如何显示导致travis日志的testthat?

时间:2017-08-24 15:25:24

标签: r travis-ci testthat

我在travis上测试一个名为eutradeflows的R包。该软件包包含使用testthat编程的测试,我希望在travis中看到devtools::test()的输出。

主travis日志中有一句话说:

Status: 4 NOTEs
See  ‘/home/travis/build/stix-global/eutradeflows/eutradeflows.Rcheck/00check.log’
for details

this answer,我了解到可以在travis日志中显示文件。在.travis.yml我已经要求travis在测试后打印该文件:

- cat /home/travis/build/stix-global/eutradeflows/eutradeflows.Rcheck/00check.log

但它并不包含测试结果。

如何在travis中显示testthat测试的输出?

这一点特别重要,因为我在测试中有skip条指令,我想知道哪些测试已被跳过。

2 个答案:

答案 0 :(得分:1)

要显示testthat测试的结果, 将其添加到.travis.yml

r_binary_packages:
  - devtools
  - roxygen2

after_success:
  - Rscript -e 'devtools::install();devtools::test()'

答案 1 :(得分:0)

我使用了稍重的重量固定装置,以确保构建和测试仅进行一次。在构建矩阵中,我在脚本中添加了以下内容

   script: |
     R CMD build .
     R CMD INSTALL RMINC*.tar.gz
     R CMD check --as-cran --no-install RMINC*.tar.gz
     cat RMINC.Rcheck/00check.log         
     Rscript -e "\
     testr <- devtools::test(); \
     testr <- as.data.frame(testr); \
     if(any(testr\$error) || any(testr\$warning > 0)) \
       stop('Found failing tests') \
     "
     pass=$?
     if [[ $pass -ne 0 || $(grep -i "WARNING\|ERROR" RMINC.Rcheck/00check.log) != "" ]]; then
       (exit 1)
     else
       (exit 0)
     fi

这将运行R CMD检查并正确显示构建输出,从而在检查或测试阶段均出现警告或错误。