问题标签 [testthat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 找不到 SummaryReporter 输出
我到处找,但我找不到 SummaryReporter 在哪里写测试报告?如果出现单一故障,则脚本会因错误而停止。理想情况下,所有测试都将运行并将结果输出到文件中。
r - 在 RUnit 或 testthat 中自动生成测试用例
如何在 RUnit 中自动生成测试用例?
例如,假设我有一个简单的 sum() 函数:
我想在一系列不同的测试用例上测试这个功能:
每个向量的前两个元素是 x 和 y,第三个是 sum(x,y) 函数的预期输出。
在 python 中,我可以轻松地编写一个函数,为 test_cases 中的每个元素生成一个测试用例,但我不知道如何在 R 中实现它。我查看了 RUnit 和 testthat 文档,但没有类似的东西。这里最好的解决方案是什么?
这就是我用python编写它的方式(使用nosetest启动测试单元):
r - 如何使用 testthat 包使测试失败?
我有一个测试,如果不满足先决条件(例如,丢失文件或其他东西),我想让它失败。
只是为了澄清,这是我想做的一个例子:
现在我的问题是:在testthat包中是否有类似fail()
的期望,或者我必须一直写?expect_true(FALSE)
r - 当涉及 S4 代码时,testthat::auto_test() 似乎失败了
在过去的几周里,我一直在将testthat包的单元测试功能越来越多地集成到我的日常工作中,并且真的不得不说:这个包太棒了!
我特别喜欢自动测试功能,每次您在代码中的某个位置进行更改时,它都会自动运行您的所有单元测试。但是,我认为在您的代码目录包含 S4 定义(类、通用方法、自定义方法)的情况下使用testthat的函数时,我遇到了一个小错误或至少一些不良行为。auto_test()
问题
下面说明的这种行为是错误还是我在使用时做错了什么auto_test()
?
下面你会找到一个需要先创建一些示例文件的插图
预赛
设置工作目录
确保目录
创建 S4 参考类定义
classes.R
在目录中创建文件src
创建通用方法定义
generics.R
在目录中创建文件src
创建自定义方法定义
methods.R
在目录中创建文件src
创建单元测试
创建文件test_getName_ref.R
和test_setName_ref.R
目录tests
插图
运行auto_test()
会报错:
我的第一个猜测是,这可能与testthat::source_dir()
处理采购的方式有关,可能是由于争论env
?
为了继续,我们需要使用 CRTL + BREAK 关闭自动测试(在 Windows 上;如果您在其他平台上,请参阅本文中的“自动测试”部分)
现在,当我们第一次手动获取代码并运行test_dir()
时,一切似乎都运行良好:
r - 从 R 包中导出环境
我正在开发一个 R 包,它封装了该rmongodb
包并创建了一个开发人员友好的界面来使用 MongoDB。该包在proto
内部使用。
我想通过一个名为 的原型对象(一个环境)导出一个工厂方法MongoDB
,其定义是:
在使用 RStudio & 进行开发devtools
期间以及在本地测试期间,这似乎不是问题。但是,我遇到了几个问题:
devtools::check()
坚持import(MongoDB)
在我的 NAMESPACE 文件中放入一个R CMD check
失败的文件,并显示“不需要命名空间依赖:'MongoDB'”。当我删除此导入指令
R CMD check
时testthat
,即使我手动添加export(MongoDB)
. 但是,devtools::test()
在 RStudio 中工作正常。
从 R 包中导出proto
对象(环境)的推荐方法是什么?
更新:
根据 Gabor 在下面的建议,我确保MongoDB.Rd
声明MongoDB
为数据(链接有来源)。我仍然MongoDB
无法在测试中不可见(使用testthat
)。我的DESCRIPTION
文件在这里,NAMESPACE
在这里。
r - 通过调用 datadist() + options() 设置 rms 时测试失败
我正在尝试使用testthat
包进行一些单元测试,但我似乎无法让它与rms
包一起正常工作。下面的例子:
返回此错误:
设计错误(eval.parent(m)):未找到选项的数据集 ddist(datadist=)
即使 print(ddist) 有效并且 options("datadist") 返回正确的变量,这也是如此。是否testthat
有导致错误的不同变量范围?
更新
我通过在我的包目录(Eclipse StatET)中启动的 R 控制台运行测试:
R CMD check --as-cran 也会出现同样的错误
r - 测试连接的问题
任何人都知道为什么在函数textConnection
内部使用test_that
不能正常工作?
即如果我直接运行以下代码,一切正常:
然而,如果我将它嵌套在一个test_that
函数中,它就不起作用,并且我得到一个空的 txt 变量来expect_equal
调用。
会话信息
r - 如何使用 R 中的 testthat 测试文件夹是否存在
我有一个功能可以为我的其余工作流程设置一些文件夹
我正在尝试对其进行单元测试,并且我的错误测试工作正常:
但是我对成功的测试,不要...
错误
- 错误:analysisFolderCreation:给定正确的输入,函数正确执行---------------------------- ------------------------ 找不到函数“analysisFolderCreation”
当我检查文件夹的存在时,我不确定如何以期望格式进行测试,该格式实际上包含函数 analysisFolderCreation 。
我正在运行dev_mode()
并明确执行测试文件test_file()
是否有人能够提供一种重写测试以使其工作的方法,或提供存在检查期望?
r - 如何正确使用 testthat expect_error()?
expect_error()
in testthat
package的正确用法是什么?我试图从帮助中调整示例,但是当我在错误消息中使用括号时失败。
这导致:
R 版本 3.0.1 (2013-05-16)