显然有两种方法可以testthat
与R CMD check
. 我也不能上班。
方法#1:(可能已弃用)
开发包时,将测试放在 inst/tests 中,然后创建文件 tests/run-all.R(注意必须是大写的 R),其中包含以下代码:
library(testthat)
library(mypackage)
test_package("mypackage")
这将评估您在包命名空间中的测试(因此您可以测试未导出的函数),如果有任何测试失败,它将引发错误。这意味着您将看到完整的测试失败报告,除非所有测试都通过,否则 R CMD 检查不会通过。
整个包裹都在这里。其中有两个文件:
## minimalbugexample/inst/tests/run-all.R
library(testthat)
library(minimalbugexample)
test_package('minimalbugexample')
和
## minimalbugexample/inst/tests/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
我的描述是
Package: minimalbugexample
Title:
Description:
Version: 0.1.1
Author: Nathan VanHoudnos <nathanvan@letterafterFmail.com>
Maintainer: Nathan VanHoudnos <nathanvan@letterafterFmail.com>
Depends:
R (>= 3.0.1),
Matrix (>= 1.0)
Suggests:
testthat
License: GPL
LazyData: true
Collate:
'minimalbugexample-package.r'
'use-Matrix-package.R'
安装软件包后,我可以很好地运行测试(正如预期的那样,它们失败了)。
> test_package('minimalbugexample')
Intentional break : 1
1. Failure: -------------------------------------------------------------------
TRUE not equal to FALSE
1 element mismatch
Error: Test failures
>
但是 anR CMD check
不运行测试。
$ R CMD check minimalbugexample_0.1.1.tar.gz
... snip ...
* checking PDF version of manual ... WARNING
WARNING: There was 1 warning.
See
‘/home/nathanvan/software/minimalbugexample.Rcheck/00check.log’
for details.
我认为 PDF 警告与此无关,但如果需要,我可以提供更多详细信息。
方法#2:(出血边缘)
现在,推荐的做法是将您的测试放在 tests/testthat 中,然后通过将以下代码放在 tests/test-all.R 中来确保 R CMD 检查运行:
library(testthat)
test_check(yourpackage)
所以我确保我安装了最新版本的 testthat:
> install_github("testthat")
然后换了包。你可以在这里得到这个版本。我将这两个文件修改为
## minimalbugexample/inst/tests/test-all.R
library(testthat)
test_check(minimalbugexample)
和
## minimalbugexample/inst/tests/testthat/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
然后将DESCRIPTION文件中的包版本更新为0.1.2,我可以构建它,安装它,并使用testthat
它来检查它并获得与以前相同的输出。因此,就目前而言,它似乎在testthat
起作用。
但是, R CMD check 仍然不运行测试:
$ R CMD check minimalbugexample_0.1.2.tar.gz
... snip ...
* checking PDF version of manual ... WARNING
LaTeX errors when creating PDF version.
This typically indicates Rd problems.
WARNING: There was 1 warning.
See
‘/home/nathanvan/software/minimalbugexample.Rcheck/00check.log’
for details.
所以问题:
我究竟做错了什么?我更喜欢方法 2 的解决方案,但我会采取任何一个!