在R markdown文档中包含来自testthat的错误消息

时间:2017-11-16 13:03:03

标签: r knitr r-markdown testthat

我想在R markdown pdf报告中包含错误消息。这很有效:

---
output: pdf_document
---

This will be knitted and show the error message in the pdf.
```{r, error = TRUE}
stopifnot(2 == 3)
```

但是,如果我尝试使用来自testthat的错误的相同方法,我的文档就不再编织了。

---
output: pdf_document
---

This will not knit
```{r, error = TRUE}
library(testthat)
expect_equal(2, 3)
```

为什么?我该怎么做才能包含来自testthat expect_something函数的错误消息,而不会将它们包含在测试中?

我认为这一定是可能的,因为Hadley Wickham在其直接来自expect_something - 函数的R包中包含了许多错误消息。

这是相关的,但未在Include errors in R markdown package vignetteHow to skip error checking at Rmarkdown compiling?

中得到解答

2 个答案:

答案 0 :(得分:1)

我不明白行为的原因(好问题!),但这可能是一种解决方法:

---
output: pdf_document
---

This will knit
```{r, error = TRUE}
library(testthat)
# expect_equal(2, 3)
# skip_if_not(2, 3)
assertthat::assert_that(2 == 3)
```

答案 1 :(得分:1)

创建测试:

```{r, error = TRUE}
library(testthat)
test_that("Test A", {
  expect_equal(2, 3)
})
```