在 testthat 中抛出警告而不是错误

Throw warnings rather than errors in testthat

我正在为一个包编写单元测试,并且有一些测试我不希望测试在失败时抛出错误而是给出警告。

这不是我的真实代码,但假设我想测试如下内容:

add_x_y <- function(x, y) x + y
expect_equal( add_x_y(2, 2), 3 )

输出错误:

Error: add_x_y(2, 2) not equal to 3.
1/1 mismatches
[1] 4 - 3 == 1

是否有变体或替代函数会针对此检查抛出警告而不是错误?

如果没有特定于 testthat 的方法,您可以使用一般错误处理来输出警告而不是错误。

expect_equal_or_warn <- function(...) tryCatch(expect_equal(...),
                                               error = function(e) warning(e))

expect_equal_or_warn(add_x_y(2,2), 3)

Warning message:
add_x_y(2, 2) not equal to 3.
1/1 mismatches
[1] 4 - 3 == 1