我是writing an R package,接受了以下棉绒测试:
context("Require no code style errors")
library(lintr)
test_that("Package has no lintr errors", {
lintr::expect_lint_free()
})
测试通过`devtools :: check():
通过$ Rscript -e "devtools::check()"
...
─ checking tests ...
✔ Running ‘testthat.R’ [61s/65s]
...
0 errors ✔ | 0 warnings ✔ | 0 notes ✔
并且无棉绒测试失败,并显示devtools::test()
:
$ Rscript -e "devtools::test()"
...
Testing PosteriorBootstrap
...
✖ | 0 1 | Require no code style errors [6.2 s]
────────────────────────────────────────────────────────────────────────────────
test_lintr.R:5: failure: Package has no lintr errors
Not lint free
tests/testthat/test_anpl.R:112:1: style: Trailing whitespace is superfluous.
^~
...
OK: 20
Failed: 1
Warnings: 0
Skipped: 0
问题在于Github和Travis设置为拒绝未通过测试的请求,并且如果我在devtools::test()
之后运行devtools::check()
,则所有其他测试运行两次。
如何获得devtools::check()
来运行lintr
测试?
答案 0 :(得分:0)
此问题是known issue:
这不是devtools中的错误(但可能是lintr)。
devtools::check()
在一个临时目录中运行检查,但是lint_package()
假定它在程序包目录中运行,因此没有源文件要被插入。 ...您可以使用devtools::check(check_dir = ".")
进行确认,如果devtools::test()
这样做,则会导致掉毛失败。
拟于2015年5月编写的解决方案不再有效。现在,此问题已锁定并关闭,因此不太可能解决。
我建议运行检查并将测试范围缩小到lintr
:
Rscript -e "devtools::check();devtools::test_file(file = 'testthat/test_lintr.R')"