gpt4 book ai didi

r - R 包中不推荐使用的函数的单元测试在检查期间导致警告

转载 作者:行者123 更新时间:2023-12-05 00:52:23 26 4
gpt4 key购买 nike

我已经弃用了 R 包中的几个函数,包括一个 .Deprecated("new_function_name")函数开头的行。我对那些已弃用的函数进行了完整的单元测试。现在这些测试会产生警告(因为弃用消息)并混淆了 testthat::test() 的结果。和 devtools::check().
我可以删除不推荐使用的函数的测试覆盖率,但似乎只要用户仍然可以调用这些函数,我就应该保留测试覆盖率。有没有办法可以保持测试但避免 check() 结果中的困惑?例如,告诉 testthat如果 expect_equal(),则将它们视为通过仍然有效,忽略弃用警告?

最佳答案

.Deprecated产生警告。因此,您始终可以临时存储输出并将其包装在对 expect_warning 的调用中。或 suppressWarnings如果你不关心测试它会发出警告。

my_dep_fun <- function(x){
.Deprecated("my_new_fun")
return(x+1)
}

使用这个
> # This is what I expect you're doing right now
> expect_equal(my_dep_fun(3), 4)
Warning message:
'my_dep_fun' is deprecated.
Use 'my_new_fun' instead.
See help("Deprecated")
>
> # If we store and use expect_warning we don't get the warning
> expect_warning(tmp <- my_dep_fun(3))
> expect_equal(tmp, 4)
> # Alternatively...
> suppressWarnings(expect_equal(my_dep_fun(3), 4))
>

关于r - R 包中不推荐使用的函数的单元测试在检查期间导致警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42952118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com