実際の質問
単体テストを実行する前にdevtools::test()
、パッケージのファイルに記載されているパッケージの依存関係が読み込まれていることを確認していないようです。DESCRIPTION
どうすればそれを変更できますか?
詳細
B
別のパッケージ ( ) をインポートするパッケージ ( ) を作成していますA
。
devtools::test()
、またはより正確にはRStudioのショートカットを介して単体テストを実行しようとするSHFT + CRTL + T
と、インポートされたパッケージが無視されている/読み込まれていないように見え、特定の関数(isPackageInstalled
)が見つからないため、特定のテストが失敗します。
実行する前にインポートしたパッケージA
を手動でロードしようとしても役に立ちませんでした。これは、 (または) 新鮮なワークスペースの状態を「シミュレート」するという事実によるものだと思いますか? ただし、事前にパッケージを手動でロードした後、単体テストを「1つずつ」実行すると問題なく動作します。devtools::test()
devtools
testthat
A
devtools は のDESCRIPTION
ファイルでパッケージの依存関係を検索しB
、実行時のようにそれらをロードすると思いました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
ここで何か不足していますか?
ビルド ツール ダイアログのスクリーンショット: