r-在测试功能中使用tinytest



我使用tinytest来测试包。当我测试多个具有相同预期结果的类似输入时,我在test_*.R文件中创建了一个小的测试助手函数。

但是,如果测试失败,我不会收到典型的失败通知。例如,在下面的函数中,我希望得到一个摘要或直接失败,但它返回

library(tinytest)
test_function <- function() {
expect_equal(1, 1)
expect_equal(2, 1)
expect_equal(1, 1)
}
test_function()
#> ----- PASSED      : <-->
#>  call| test_function() 

请注意,如果我用testthat替换tinytest,函数将停止并按预期返回错误。

这是预期的行为还是我在阅读文档时遗漏了什么?我如何在这样的测试功能中使用tinytest?

所以我能够收集到的是,您的test_function((正在返回函数内最后一个expect_equal((的结果。这意味着,如果将最后一个expect_equal(1,1(更改为expect_equal(2,1(或任何其他错误结果,test_function将返回FAILED结果。

现在,如果你想在函数中获取每个expect_eqaul((的结果,你可以试试这个:

library(tinytest)
test_function <- function(){
Results <- c(expect_equal(1, 1),expect_equal(2, 1),expect_equal(1, 1))
return(Results)
}
test_function()

这将为您提供一个布尔值列表。

> test_function()
[1]  TRUE FALSE  TRUE

或者测试是否所有测试都呈阳性:

> expect_true(all(test_function()))
----- FAILED[data]: <-->
call| expect_true(all(test_function()))
diff| Expected TRUE, got FALSE 

相关内容

  • 没有找到相关文章

最新更新