我正在测试这个 R包.
以下三件事情很好:
devtools::test()devtools::test_file("tests/testthat.R")但是,有以下几点
devtools::check()devtools::build_win()#(请参阅此处的 win-builder输出)产生这个错误:
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,dots)testthat results ============================ ==================================== OK:34 SKIPPED:0 FAILED:1 1.错误:城市工作(@ test-etl.R#113)错误:测试单元测试失败执行停止
此外,旧版本的Travis-CI作业会抛出错误dplyr并readr丢失,而开发版本的Travis-CI作业会抛出一个无法连接到数据库的错误.(我怀疑这些错误与上述错误无关.)
我已经尝试了所有常用的技巧,我相信代码中实际上没有错误,只有某种环境/ NAMESPACE不匹配,我不明白,不知道如何调试.
有任何想法吗?我正在Ubuntu使用R 3.4.1.
MWE
# shell
git clone git@github.com:beanumber/etl.git
# R
library(devtools)
test()
check()
Run Code Online (Sandbox Code Playgroud) 我有一个.rmd文件,编织过程就好了.
我想在文档中运行所有块,以便我可以在我的R shell中探索结果.
在Rstudio中有一个选项来运行文档中的所有块,但我找不到在简单的R会话中实现相同效果的方法(在我的终端中打开).
有没有办法做到这一点?
我的第一篇 [r] 帖子!我接手了一个由软件公司开发的项目,该项目由 4 个 R 包组成。在运行测试时,我发现虽然 devtools::test() 为其中一个包生成了干净的运行,但 devtools::check() 却没有!
输出中的错误如下:
> test_check("moment")
Error in file(file, "rt") : cannot open the connection
Calls: test_check ... FUN -> eval -> eval -> read.csv -> read.table -> file
In addition: Warning message:
In file(file, "rt") :
cannot open file 'Tables/Analysis/BobAndCheck/bob.csv': No such file or directory
Execution halted
Run Code Online (Sandbox Code Playgroud)
请注意,所引用的 csv 文件是用于管理 testthat 输入和预期输出的众多 csv 文件之一。似乎在运行 devtools::check() 时整个包(包括这些文件)被复制到 TMPDIR 位置。奇怪的是,“BobAndCheck”文件夹没有被复制(即使包含类似 csv 文件的其他文件夹也被复制)。所以错误是正确的,测试文件不在那里(在 TMPDIR 中),但我不知道为什么它没有被复制,而其他文件却被复制!请注意,顶层“Tables”直接位于包结构中的tests/testthat 文件夹下。
我找不到任何关于为什么 check() 将文件复制到 TMPDIR 来运行测试(干净的包?)的文档,并且无法理解为什么这可能会出错!???
非常感谢任何帮助。谢谢。
编辑以包含下面的忽略文件(我不认为这是导致问题的原因):
^.*\.Rproj$ …Run Code Online (Sandbox Code Playgroud)