当我在TravisCI下构建R包时,在测试失败时打印出最后13行。要调试仅在Travis下发生的问题,我需要更多行。
在哪里可以设置日志中显示的行数?
稍后添加:
https://github.com/hadley/testthat/commit/f037f463edcccd403502308fd86e32914c6d0d0f
看起来它是一个测试功能,但我不明白如何关闭它。
答案 0 :(得分:3)
看来,运行R CMD check
时,“要在日志中重现的测试输出的尾数”可以由环境变量_R_CHECK_TESTS_NLINES_
控制,该变量在R Internals {{3 }}。
此环境变量的默认值为13,但如果设置为0,则“将复制R序言以外的所有行”。
此答案由here撰写的有关此解决方案的博客文章提示。
答案 1 :(得分:1)
travis.yml
:
after_failure:
- ./run.sh dump_logs
(其中run.sh
是我的maintained fork of the initial R-Travis)。
该脚本(就像它来自的travis.sh
)有这样的代码:
DumpSysinfo() {
echo "Dumping system information."
R -e '.libPaths(); sessionInfo(); installed.packages()'
}
DumpLogsByExtension() {
if [[ -z "$1" ]]; then
echo "dump_logs_by_extension requires exactly one argument, got: $@"
exit 1
fi
extension=$1
shift
package=$(find . -maxdepth 1 -name "*.Rcheck" -type d)
if [[ ${#package[@]} -ne 1 ]]; then
echo "Could not find package Rcheck directory, skipping log dump."
exit 0
fi
for name in $(find "${package}" -type f -name "*${extension}"); do
echo ">>> Filename: ${name} <<<"
cat ${name}
done
}
DumpLogs() {
echo "Dumping test execution logs."
DumpLogsByExtension "out"
DumpLogsByExtension "log"
DumpLogsByExtension "fail"
}
我相信你可以从这里拿走它。 “新的新”特拉维斯肯定也有一个设置。