【发布时间】:2018-03-02 05:21:23
【问题描述】:
我正在测试this R 包。
以下三件事可以正常工作:
devtools::test()devtools::test_file("tests/testthat.R")- Travis-CI with release version of R
但是,下面的事情
devtools::check()-
devtools::build_win()#(见 win-builder 输出here)
产生这个错误:
R CMD 检查结果 1 错误 | 0 个警告 | 0 笔记检查测试... 错误运行“testthat.R”在“tests/testthat.R”中运行测试 失败的。最后 13 行输出:40: mutate_.data.frame(., city_pop = ~readr::parse_number(Population..4), metro_pop = ~readr::parse_number(Population..5), urban_pop = ~readr::parse_number(Population..6), Country = ~gsub(",", "_", Country)) 41: mutate(.data, !(!(!dots))) 42: mutate.data.frame(.data, !(!(!dots))) 43: as.data.frame(mutate(tbl_df(.data), ...)) 44: mutate(tbl_df(.data), ...) 45: mutate.tbl_df(tbl_df(.data), ...) 46: mutate_impl(.data, 点) 测试结果================================================= ================ 确定:34 跳过:0 失败:1 1. 错误:城市有效 (@test-etl.R#113) 错误:testthat 单元测试失败执行停止
此外,old release Travis-CI job 会引发关于 dplyr 和 readr 丢失的错误,development release Travis-CI job 会引发关于无法连接到数据库的错误。 (我有点怀疑这些错误与上述无关。)
我读过this 和this 和this 和this 但这些似乎都不是我的问题。
我已经尝试了所有常用的技巧,并且我相当有信心代码中实际上没有错误,只是某种环境/NAMESPACE 不匹配,我不理解和不理解'不知道如何调试。
有什么想法吗?我在Ubuntu 上使用R 3.4.1。
MWE
# shell
git clone git@github.com:beanumber/etl.git
# R
library(devtools)
test()
check()
【问题讨论】:
-
我实际上解决了我自己的问题(我使用了错误的包名的
test_check()——说来话长!)但仍然很高兴看到这个问题的好答案。过去我遇到过很多问题,在check()和test()环境中相对于简单地source()ing 相关文件很奇怪......
标签: r unit-testing travis-ci devtools