簡體   English   中英

'testthat',我應該如何解釋這個失敗?

[英]'testthat', how should I interpret this failure?

我想使用 '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在單獨的 helper.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 個失敗。 我仍然沒有看到任何跡象。

這有幫助嗎?


(順便說一句,多虧了這些測試活動,我發現並修復了幾個錯誤:-))

將文件 'testthat.R' 從 '/tests/testthat' 目錄移動到 '/tests' 目錄后,不再檢測到故障。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM