[英]Generic dispatching in a package after a call to devtools::test()
[英]How to make devtools::test() consider package dependencies
好像devtools::test()
不能確保在運行單元測試之前先加載了軟件包的DESCRIPTION
文件中所述的軟件包依賴關系。 我該如何改變?
我正在編寫一個程序包( B
),該程序包將導入我的另一個程序包( A
)。
當我嘗試通過devtools::test()
或更確切地說通過RStudio中的SHFT + CRTL + T
快捷方式運行單元測試時,某些測試失敗,因為導入的軟件包似乎被忽略/未加載,因此找不到某些功能( isPackageInstalled
)。
在運行devtools::test()
之前嘗試手動加載導入的程序包A
也無濟於事。 我猜這是由於devtools
(或testthat
)“模擬”了新的工作區狀態造成的? 不過,在事先手動加載程序包A
之后,“一個一個地”運行單元測試就可以了。
我以為devtools會在B
的DESCRIPTION
文件中查找程序包依賴關系,然后像運行require("B")
時那樣加載它們,但顯然不是。
這是我的DESCRIPTION
文件:
Package: B
Type: Package
Title: What the package does (short line)
Version: 0.1.0.1
Date: 2014-08-05
Author: Who wrote it
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: What license is it under?
Imports: A
這是我運行的代碼:
devtools::load_all() # or SHFT + CTRL + L in RStudio
devtools::test() # or SHFT + CTRL + T in RStudio
這就是RStudio的build
窗格給我的:
==> devtools::test()
Loading required package: testthat
Testing B
Loading B
Creating a new generic function for 'signalCondition' in package 'B'
package : 1
package : ......
1. Error: getPackageDescription ------------------------------------------------
could not find function "isPackageInstalled"
1: expect_is(res <- getPackageDescription(), expected) at test-getPackageDescription.r:13
2: expect_that(object, is_a(class), info, label)
3: condition(object)
4: paste0(class(x), collapse = ", ")
5: getPackageDescription()
6: getPackageDescription() at Q:\home\wsp\rapp2\B/R/getPackageDescription.r:37
7: getPackageDescription(from = from, fields = fields, drop = drop, encoding = encoding,
...) at Q:\home\wsp\rapp2\B/R/getPackageDescription.r:154
8: getPackageDescription(from = from, fields = fields, drop = drop, encoding = encoding,
...) at Q:\home\wsp\rapp2\B/R/getPackageDescription.r:37
我在這里想念什么嗎?
生成工具對話框的屏幕截圖:
通常的方法是使用roxygen2
從源代碼中的特殊注釋自動生成NAMESPACE
文件,但手動維護DESCRIPTION
文件。 我知道沒有什么特別的東西可以使它們保持同步,但是R CMD CHECK
會告訴您DESCRIPTION
是否缺少/多余的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.