簡體   English   中英

在使用testthat進行測試之前和之后運行代碼段

[英]Run a code snippet before and after tests with testthat

我有一組R函數,它們是從Ruby應用程序調用的,並希望對其進行測試。 R函數從Postgres數據庫訪問數據,因此要編寫測試,我需要用一些示例數據填充測試數據庫。

我想避免在每個測試用例中清理數據庫。 如果我可以在每次測試之前啟動事務並在之后進行回滾,那將是很好的。

該頁面“編寫測試”部分的最后一段http://r-pkgs.had.co.nz/tests.html使我認為不可能在每個測試用例之前都執行代碼塊。

有誰知道有創意的工作環境嗎? 我正在考慮分叉該項目並添加功能,但想確保我沒有重新發明輪子。

對於那些偶然發現此問題的人,我最終為test_that()創建了一個包裝函數,該函數在從postgres獲取數據時使用。 下面是我的解決方案:

db.test_that <- function(description, test_code) {
    dbGetQuery(database_connection, 'BEGIN TRANSACTION')

    test_that(description, test_code)

    dbRollback(database_connection)
}

暫無
暫無

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

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