2017-07-19 74 views
0

我想使用testthat進行集成測試,安裝在Jupyter筆記本電腦環境中的R軟件包中。實際上,這意味着我不想在安裝軟件包時運行測試,而是在系統運行時手動運行。如何在R中運行單個testthat測試?

我認爲這意味着我不應該把測試放到tests/testthat目錄,而是R目錄。

所以,我仍然想要所有expect_函數,但是如何運行測試?我不確定我是否可以指定文件或目錄,因爲它將在安裝軟件包之後,我不知道當前的工作目錄或安裝目錄是什麼。

+0

我可能誤解了,但安裝軟件包時測試不運行。 – SymbolixAU

+0

謝謝。你是否建議我把東西放在測試中,並使用test_package工具?它感覺有點奇怪。集成測試不像單元測試。單元測試不需要設置組件,但集成測試需要(實際上是測試)數據庫連接等。 – dfrankow

回答

0

testthat包。 。 。

如果你在包中使用testthat,你應該把你的測試放在 tests/testthat中。每個測試文件應從測試開始,以.R或 .r結尾。爲確保R CMD檢查運行您的測試,請將以下代碼放入 tests/testthat.R:

library(testthat); 庫(yourpackage)

test_check( 「yourpackage」)

這聽起來像你應該遵循所有的設置,但離開testthat.R文件出來的目錄。您可以從控制檯或腳本運行test_check("yourpackage")

+0

我認爲可能是'tests'中的代碼沒有與該軟件包一起安裝。所以,我認爲這是行不通的。 :/ – dfrankow

+0

我見過的大部分軟件包都有一個'tests'目錄。這似乎是要加載到CRAN上的要求。但是,如果沒有'tests'目錄,'testthat'沒有什麼可做的,並且會返回類似於「沒有找到測試」的東西 – Kevin

+0

我構建了包含測試目錄和test_x.R的包,然後安裝它我加載了軟件包,並要求它運行軟件包測試,但沒有。我得出結論,隨着圖書館的安裝,它將剝離測試。但是,也許我錯了,我錯過了其他設置。我會看。如果你可以嘗試一下,那會有幫助。 – dfrankow