在 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
我正在为一个包编写单元测试,并且有一些测试我不希望测试在失败时抛出错误而是给出警告。
这不是我的真实代码,但假设我想测试如下内容:
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