我在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
条指令,我想知道哪些测试已被跳过。
答案 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检查并正确显示构建输出,从而在检查或测试阶段均出现警告或错误。