失败时报告来自 test_that 块的额外信息

问题描述

我想在测试失败的情况下向控制台cat()一些信息(我确信这不会发生,但我无法证明它不会发生),以便我可以调查该问题。

现在我的代码大致如下:

testthat::test_that('Maybe fails',{
  seed <- as.integer(Sys.time())
  set.seed(seed)
  
  testthat::expect_true(maybe_fails(runif(100L)))
  testthat::expect_equal(long_vector(runif(100L)),target,tol = 1e-8)

  if (Failed()) {
    cat('seed: ',seed,'\n')
  }
})

很遗憾,Failed() 不存在。

expect_*() 的返回值似乎没有用,它们只是返回实际参数。

我正在考虑使用 all.equal() 再次检查,但这是一个非常丑陋的重复。

解决方法

您可以将 cat 管理的 info 参数及其 testthat 用于所有 reporters 函数(argument kept for compatibility reasons ):

expect

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...