相关疑难解决方法(0)

devtools :: test()有效,但devtools :: check()没有.为什么?

我正在测试这个 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作业会抛出错误dplyrreadr丢失,而开发版本的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)

unit-testing r devtools travis-ci

19
推荐指数
1
解决办法
642
查看次数

knitr:在Rmarkdown文档中运行所有块

我有一个.rmd文件,编织过程就好了.

我想在文档中运行所有块,以便我可以在我的R shell中探索结果.

在Rstudio中有一个选项来运行文档中的所有块,但我找不到在简单的R会话中实现相同效果的方法(在我的终端中打开).

有没有办法做到这一点?

r rstudio knitr r-markdown

17
推荐指数
2
解决办法
3560
查看次数

devtools::check() 在 devtools::test() 通过的地方失败,因为并非 testthat 中的所有测试文件都被复制到 [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)

r

5
推荐指数
0
解决办法
668
查看次数

标签 统计

r ×3

devtools ×1

knitr ×1

r-markdown ×1

rstudio ×1

travis-ci ×1

unit-testing ×1