2013-09-26 6 views
6

テストディレクトリの外部データファイルを使用してtestthat:test1.rファイルでRは - 私は、次のようなファイルツリーでパッケージをテストする<code>testthat</code>を使用しています

. 
    ├── data 
    │   └── testhaplom.out 
    ├── inst 
    │   └── test 
    │    ├── test1.r 
    │    ├── tmp_S7byVksGRI6Q 
    │    │   └── testm.desc 
    │    └── tmp_vBcIkMN1arbn 
    │     ├──testm.bin 
    │     └── testm.desc 
    ├── R 
    │   ├── haplom.r 
    │   └── winIdx.r 
    └── tmp_eUG3Qb0PKuiN 
     └── testhaplom.hap2.desc 

を、私はとしてdata/testhaplom.outファイルを使用する必要があります入力特定の機能のためのデータが、私は下のエラーを与えて、それがinst/testディレクトリに変更し、データファイルを見ることができない、test_file(test1.r)を行う場合:

...Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : 
    cannot open file 'data/testhaplom.out': No such file or directory 

答えて

11

あなたのための2つのソリューションがあります。問題:

あなたは相対パス(../data/testhaplom.out)使用することができます

expect_true(file.exists(file.path("..", "data", "testhaplom.out"))) 

をそれとも、データディレクトリの場所を取得するためにsystem.fileを使用することができます。

expect_true(file.exists(file.path(system.file("data", package="YOUR_R_PACKAGE"), "testhaplom.out"))) 

私は第二の溶液を好みます。

BTW:file.path各プラットフォームで正しいパス区切り文字を使用してください。

関連する問題