と統合するには明らかに 2 つの方法がありtestthat
ますR CMD check
。私はどちらも働くことができません。
アプローチ #1: (おそらく非推奨)
devtools wikiによると:
パッケージを開発するときは、テストを inst/tests に置き、次のコードを含むファイル tests/run-all.R (大文字の R でなければならないことに注意してください) を作成します。
library(testthat)
library(mypackage)
test_package("mypackage")
これにより、パッケージの名前空間でテストが評価され (エクスポートされていない関数をテストできるようになります)、テストの失敗がある場合はエラーがスローされます。これは、テストの失敗の完全なレポートが表示され、すべてのテストに合格しない限り R CMD チェックに合格しないことを意味します。
パッケージ全体はこちら. その中には、次の 2 つのファイルがあります。
## minimalbugexample/inst/tests/run-all.R
library(testthat)
library(minimalbugexample)
test_package('minimalbugexample')
と
## minimalbugexample/inst/tests/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
私の説明は
Package: minimalbugexample
Title:
Description:
Version: 0.1.1
Author: Nathan VanHoudnos <nathanvan@letterafterFmail.com>
Maintainer: Nathan VanHoudnos <nathanvan@letterafterFmail.com>
Depends:
R (>= 3.0.1),
Matrix (>= 1.0)
Suggests:
testthat
License: GPL
LazyData: true
Collate:
'minimalbugexample-package.r'
'use-Matrix-package.R'
パッケージをインストールした後、テストを問題なく実行できます (予想どおり失敗します)。
> test_package('minimalbugexample')
Intentional break : 1
1. Failure: -------------------------------------------------------------------
TRUE not equal to FALSE
1 element mismatch
Error: Test failures
>
しかし、R CMD check
テストは実行されません。
$ R CMD check minimalbugexample_0.1.1.tar.gz
... snip ...
* checking PDF version of manual ... WARNING
WARNING: There was 1 warning.
See
‘/home/nathanvan/software/minimalbugexample.Rcheck/00check.log’
for details.
PDF の警告がこれと関係があるとは思いませんが、要求があれば詳細を提供できます。
アプローチ #2: (ブリーディング エッジ)
ここで、tests/testthat にテストを配置し、次のコードを tests/test-all.R に配置して R CMD チェックが確実に実行されるようにすることをお勧めします。
library(testthat)
test_check(yourpackage)
そのため、testthat の最新バージョンがインストールされていることを確認しました。
> install_github("testthat")
そして、パッケージを変更しました。このバージョンはこちらから入手できます。2つのファイルを次のように変更しました
## minimalbugexample/inst/tests/test-all.R
library(testthat)
test_check(minimalbugexample)
と
## minimalbugexample/inst/tests/testthat/test-use-Matrix-package.R
context("Intentional break")
expect_that( TRUE, equals(FALSE))
次に、DESCRIPTION ファイルでパッケージのバージョンを 0.1.2 に更新すると、ビルドしてインストールし、testthat
チェックして以前と同じ出力を得ることができます。したがって、testthat
関係する限り、その作業のようです。
ただし、R CMD チェックはまだテストを実行しません。
$ R CMD check minimalbugexample_0.1.2.tar.gz
... snip ...
* checking PDF version of manual ... WARNING
LaTeX errors when creating PDF version.
This typically indicates Rd problems.
WARNING: There was 1 warning.
See
‘/home/nathanvan/software/minimalbugexample.Rcheck/00check.log’
for details.
だから質問:
私は何を間違っていますか?私の好みはアプローチ 2 の解決策ですが、いずれかを採用します。