问题标签 [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 投票
1 回答
81 浏览

r - 在没有 R 的情况下测试 R 扩展

我一直在研究 R 的扩展,它将进行一些聚类。该项目使用 c++ 和 Rcpp(使用 RcppArmadillo 执行计算)。因此,我需要测试一些课程。有人建议我使用 googletest。不幸的是,我无法运行任何测试代码。

问题是,为了测试使用 Rcpp 和 googletest 框架的类,我必须在 R 环境之外工作。

我的意思是我不会将数据转换成标准的 C++ 数据结构,比如向量。数据集应该是巨大的。我得到带有数据的 NumericMatrix 并将其传递下去。这会导致所有 c++ 类都使用 Rcpp.h(或犰狳)。我想知道我是否可以在 R 之外使用这些类。

我一直在寻找有关使用 Rcpp 作为库的独立程序的任何信息,但我得到的只是“独立”代码,与通过内联包直接在 R 命令行界面中编译的 c++ 代码相反。我更喜欢使用 googletest,因为我可以直接测试 c++。

问题是是否可以在没有 R 的情况下使用 Rcpp?

0 投票
1 回答
310 浏览

regex - 在 test_package 中使用 filter 参数跳过测试

我想在 期间运行我的包单元测试R CMD check,但跳过需要互联网连接的测试。按照惯例,所有需要 Internet 的单元测试network的文件名中都有这个词。

因此我的run-all.R包含:

然而,这给出了一个invalid regular expression错误。我如何指定filter参数以使其运行每个单元测试,除了包含单词的单元测试network

0 投票
1 回答
56 浏览

r - 编写依赖于其他测试完成的 test_that 测试

我写了一系列 test_that 测试。有一个 test_that 测试具有创建 sqlite3 表的副作用。其余的测试依赖于这个 sqlite3 表。有没有办法强制这个测试在其他任何测试之前运行?

0 投票
2 回答
925 浏览

r - test_that 的多重期望

有没有办法让一个 expect_that 单元测试有多个预期?例如,对于给定的expect_that()语句,我希望该函数f()给出警告并返回 number 10

0 投票
1 回答
81 浏览

r - test_package 中脚本执行的控制顺序

test_package是否可以控制执行测试脚本的顺序?我想首先执行一些代码,这些代码会创建一些由所有单独测试共享的对象。因此,需要先执行此脚本,然后再执行实际test-blabla.R脚本。

我可以尝试类似test-AAA.Ror test-000.R,但我不确定用于列出包中脚本的dir函数是否在所有平台上返回相同的(按字母顺序排列?)文件顺序。testthat

0 投票
3 回答
1094 浏览

r - expect_error_or_warning in testthat?

I have some particularly finicky code that behaves differently on different platforms, but also behaves differently if run under valgrind ... right now I know that it

  • gives a warning if run on 32-bit Linux not under valgrind
  • gives an error if run elsewhere or on 32-bit Linux with R -d valgrind

The code below works (sorry for the lack of reproducible example, you can probably see that it would be pretty hard to write one) if I'm not running under valgrind, but under valgrind it fails because we get an error rather than a warning.

I would like an expect_warning_or_error() function; I suppose I could make one by hacking together the guts of expect_error and expect_warning, which don't look too complicated, but I welcome other suggestions.

Alternatively, I could figure out how to detect whether I am running under valgrind or not (seems harder).

A sort-of reproducible example:

0 投票
0 回答
658 浏览

r - 在 R,Rstudio 中构建包后如何进行自动测试

在 R 中构建包后如何进行自动测试 - Rstudio - testthat

我努力了:

但是每次我更改文件时都会做出反应,而不是每次我重建我的包时......它现在可以工作......但是如果我的包变得更大,那将需要很多时间......我也喜欢有我的控制台在编码期间可用...(不喜欢第二个控制台的想法)

0 投票
2 回答
633 浏览

r - 在 testthat 中测试确切的字符串

我想测试我的一个函数是否给出了特定的消息(或警告或错误)。

我希望第一个期望成功,第二个期望失败。

不幸的是,他们两个都通过了。

为了澄清:这只是一个最小的例子,而不是我正在测试的确切消息。如果可能的话,我想通过需要为我要测试的每条新消息提出适当的正则表达式来避免给我的测试脚本增加复杂性(可能还有错误)。

0 投票
2 回答
3444 浏览

r - R testthat 包:使用 test_file() 时如何查看 message() 的输出

我在 R 中使用了出色的 testthat 包。我的问题是,在使用 test_file 时,我在正在测试的代码中看不到 message() 函数的任何输出。例如,假设我在名为 test_message.R 的文件中有以下代码

我按如下方式运行 test_file 并得到下面的输出

所以我没有看到来自 message() 的文本。

但是,当我自己运行代码时,我确实看到了它:

我知道默认情况下,message() 写入 stderr,而 cat 写入 stdout,我猜测 test_file “拦截”stderr 以测试警告和错误中的文本。有什么方法可以让我在控制台上看到 message() 文本?

0 投票
3 回答
5893 浏览

r - R中的testthat:在测试文件中采购

我正在使用testthatR 中的包,并且正在尝试测试文件中定义的函数example.R。该文件包含一个调用source("../utilities/utilities.R")whereutilities.R是一个文件,其中包含我编写的函数。但是,当我尝试从 测试函数时example.R,在测试脚本中获取它会出现以下错误:

您能否说明如何对来自另一个文件的文件中的函数运行测试?