问题标签 [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.

0 投票
2 回答
1564 浏览

r - 找不到 SummaryReporter 输出

我到处找,但我找不到 SummaryReporter 在哪里写测试报告?如果出现单一故障,则脚本会因错误而停止。理想情况下,所有测试都将运行并将结果输出到文件中。

0 投票
2 回答
1085 浏览

r - 在 RUnit 或 testthat 中自动生成测试用例

如何在 RUnit 中自动生成测试用例?

例如,假设我有一个简单的 sum() 函数:

我想在一系列不同的测试用例上测试这个功能:

每个向量的前两个元素是 x 和 y,第三个是 sum(x,y) 函数的预期输出。

在 python 中,我可以轻松地编写一个函数,为 test_cases 中的每个元素生成一个测试用例,但我不知道如何在 R 中实现它。我查看了 RUnit 和 testthat 文档,但没有类似的东西。这里最好的解决方案是什么?

这就是我用python编写它的方式(使用nosetest启动测试单元):

0 投票
2 回答
374 浏览

r - 如何使用 testthat 包使测试失败?

我有一个测试,如果不满足先决条件(例如,丢失文件或其他东西),我想让它失败。

只是为了澄清,这是我想做的一个例子:

现在我的问题是:在testthat包中是否有类似fail()的期望,或者我必须一直写?expect_true(FALSE)

0 投票
0 回答
474 浏览

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.Rtest_setName_ref.R目录tests

插图

运行auto_test()会报错:

我的第一个猜测是,这可能与testthat::source_dir()处理采购的方式有关,可能是由于争论env

为了继续,我们需要使用 CRTL + BREAK 关闭自动测试(在 Windows 上;如果您在其他平台上,请参阅本文中的“自动测试”部分)

现在,当我们第一次手动获取代码并运行test_dir()时,一切似乎都运行良好:

0 投票
2 回答
801 浏览

r - 从 R 包中导出环境

我正在开发一个 R 包,它封装了该rmongodb包并创建了一个开发人员友好的界面来使用 MongoDB。该包在proto内部使用。

我想通过一个名为 的原型对象(一个环境)导出一个工厂方法MongoDB,其定义是:

在使用 RStudio & 进行开发devtools期间以及在本地测试期间,这似乎不是问题。但是,我遇到了几个问题:

  • devtools::check()坚持import(MongoDB)在我的 NAMESPACE 文件中放入一个R CMD check失败的文件,并显示“不需要命名空间依赖:'MongoDB'”。

  • 当我删除此导入指令R CMD checktestthat,即使我手动添加export(MongoDB). 但是,devtools::test()在 RStudio 中工作正常。

从 R 包中导出proto对象(环境)的推荐方法是什么?

更新:

根据 Gabor 在下面的建议,我确保MongoDB.Rd声明MongoDB为数据(链接有来源)。我仍然MongoDB无法在测试中不可见(使用testthat)。我的DESCRIPTION文件在这里NAMESPACE这里

0 投票
2 回答
1581 浏览

r - 通过调用 datadist() + options() 设置 rms 时测试失败

我正在尝试使用testthat包进行一些单元测试,但我似乎无法让它与rms包一起正常工作。下面的例子:

返回此错误:

设计错误(eval.parent(m)):未找到选项的数据集 ddist(datadist=)

即使 print(ddist) 有效并且 options("datadist") 返回正确的变量,这也是如此。是否testthat有导致错误的不同变量范围?

更新

我通过在我的包目录(Eclipse StatET)中启动的 R 控制台运行测试:

R CMD check --as-cran 也会出现同样的错误

0 投票
1 回答
110 浏览

r - 测试连接的问题

任何人都知道为什么在函数textConnection内部使用test_that不能正常工作?

即如果我直接运行以下代码,一切正常:

然而,如果我将它嵌套在一个test_that函数中,它就不起作用,并且我得到一个空的 txt 变量来expect_equal调用。

会话信息

0 投票
1 回答
932 浏览

r - 如何使用 R 中的 testthat 测试文件夹是否存在

我有一个功能可以为我的其余工作流程设置一些文件夹

我正在尝试对其进行单元测试,并且我的错误测试工作正常:

但是我对成功的测试,不要...

错误

  1. 错误:analysisFolderCreation:给定正确的输入,函数正确执行---------------------------- ------------------------ 找不到函数“analysisFolderCreation”

当我检查文件夹的存在时,我不确定如何以期望格式进行测试,该格式实际上包含函数 analysisFolderCreation 。

我正在运行dev_mode()并明确执行测试文件test_file()

是否有人能够提供一种重写测试以使其工作的方法,或提供存在检查期望?

0 投票
1 回答
617 浏览

c - 对 R 包的 /src 文件夹中的代码进行单元测试?

我正在为一个 R 包做出贡献,该包广泛使用 C 代码进行计算。

我们已经开始使用testthat包为 R 函数编写测试,将测试放在inst/tests下面的说明中。

testthat 包是否适合直接测试 C 函数(例如那些没有 R 接口的函数)?或者我们是否找到一个单独的 C 测试包?如果是这样,1)这些测试应该去哪里,2)我如何让它们在运行期间运行R CMD check,以及 3)在这种情况下是否有任何 C 测试包特别合适?

0 投票
2 回答
6671 浏览

r - 如何正确使用 testthat expect_error()?

expect_error()in testthatpackage的正确用法是什么?我试图从帮助中调整示例,但是当我在错误消息中使用括号时失败。

这导致:

R 版本 3.0.1 (2013-05-16)