testthat长时间运行测试模式

问题描述:

我有一堆测试,我不希望它们在CRAN检查或Travis CI构建过程中运行。它们要么长时间运行,要么会导致写入网络数据库的事务/并发冲突。将它们分开的方法(从R CMD检查测试)与testthat最适合?testthat长时间运行测试模式

我应该把这些测试放在一个单独的文件夹中吗?我应该标记它们的文件名并使用正则表达式吗? (例如,通过Using filter argument in test_package to skip tests @Jeroen)

http://cran.r-project.org/web/packages/policies.html

长时间运行测试和暗角的代码可以由可选的 检查,但不保证所留下的检查做运动的所有 功能包裹。

+1

如果你把它们放在另一个测试目录中,那么你仍然可以用'test_dir()'手动测试它们,但是它们不会用'test()'或'R CMD check'运行。例如。 R6有一些手动测试:https://github.com/wch/R6/tree/master/tests – 2014-09-01 02:09:05

+0

我喜欢那个@GaborCsardi,以及测试如何包含在一起,但通过'test()'和'test_dir( )'。 – wibeasley 2014-09-02 02:21:49

+0

@GaborCsardi,这正是我正在寻找的,它[很好](https://github.com/OuhscBbmc/REDCapR/commit/a93bf9e95c259068ba740596679f3943e7b521fa)为我的包的需要。如果您将您的评论更改为答案,我想给您的回复信用。 – wibeasley 2014-09-04 03:13:11

如果你把它们放在内tests另一个目录,那么你仍然可以手动test_dir()测试他们,但他们不会与test()R CMD check运行。

E.g. R6有一些手动测试:https://github.com/wch/R6/tree/master/tests

供参考:testthat 0.9现在带有一个skip()功能。

但是,我似乎无法弄清楚究竟如何/在哪里使用它。放入我的test_that()函数,测试仍然运行。如果你把它放在testthat()之前,那么skip()就会报错。

+1

感谢您提及 - 前几天我看到了发布声明。立即在测试函数中,我添加了像'testthat :: skip_on_cran()'。 这对我的一些测试非常合适,因为我想要进行一些手动测试的主要原因是,如果服务器当时不合适,它将不会被CRAN拒绝。我并不在乎Travis-CI或R-Forge检查是否失败,因为它很容易重新运行。 – wibeasley 2014-09-29 03:36:09

+5

你能告诉我,你正在使用'skip()'和/或'skip_on_cran()'吗?在RStudio中运行'test_package()'或'CRTL + SHFT + T'时,为了进行特定的测试跳过,我需要放在哪里? – Rappster 2014-09-29 14:57:01

+2

这里是[测试代码]的链接(https://github.com/OuhscBbmc/REDCapR/blob/80e9fad0eb8a42375d1291360032c4ee5ec12b97/tests/testthat/test-read_oneshot.R#L10)。为了运行它,我要么用'CTRL + SHIFT + E'来检查包,要么用''test_results_checked wibeasley 2014-09-29 21:10:11