我使用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