r语言 - 'testthat',我应该如何解释这个失败?



我想使用'testthat'将测试添加到我的包中。

这是我的测试文件:

library(RBaseX)
test_that("Credentials are accepted", {
skip_unless_socket_available()
expect_error(BasexClient$new("localhost", 1984L, username = "admin", password = "denied"), "Access denied")
Session <- BasexClient$new("localhost", 1984L, username = "admin", password = "admin")
expect_equal(class(Session)[[1]], "BasexClient")
})

skip_unless_socket_available在单独的帮助程序中定义。R 文件:

skip_unless_socket_available <- function() {
tryCatch({
Socket <- socketConnection(host = "localhost", 1984,
open = "w+b", server = FALSE, blocking = TRUE, encoding = "utf-8")
close(Socket)
TRUE
}, error = function(e) {
skip(paste0("basexserver not available:n'", conditionMessage(e), "'"))
})
}

当程序执行时,我得到以下输出:

Loading RBaseX
Testing RBaseX
✓ |  OK F W S | Context
✓ |   2       | test_RbaseX [0.2 s]
⠹ |   2 1     | test_RbaseX
══ Results ═══════════════════════════════
Duration: 0.3 s
OK:       2
Failed:   1
Warnings: 0
Skipped:  0

无论我做什么,我仍然会失败 1 次。但是,这两个异常都得到了正确处理。

我应该如何应对此故障?

在 test_RBaseX.R 中插入 3 个 contexts(( 后,我现在得到以下输出:

Loading RBaseX
Testing RBaseX
✓ |  OK F W S | Context
✓ |   2       | Access [0.1 s]
✓ |   2       | Create Session [0.1 s]
⠏ |   0       | Check setter/getter (and BasexClient$Execute()) 
✓ |   2       | Check setter/getter (and BasexClient$Execute())
⠏ |   0       | Intercept set/get is handled correctlyDatabase 'TestOpen' is niet gevonden. 
Database 'TestOpen' is niet gevonden. 
Database 'TestOpen' is niet gevonden. 
✓ |   1       | Intercept set/get is handled correctly
⠙ |   1 1     | Intercept set/get is handled correctly
══ Results ════════════════════════════════════════════
Duration: 0.4 s
OK:       7
Failed:   1
Warnings: 0
Skipped:  0

所有测试都给出了预期的结果,但随后添加了 1 个失败。我仍然没有看到任何迹象表明为什么。

这有帮助吗?

Ben
(顺便说一句,由于这些测试活动,我发现并修复了服务器错误:-((

移动文件后 'testthat.R"从"/tests/testthat"目录到"/tests"目录,不再检测到故障。

最新更新