Testthat: `encoding`は非推奨です。 すべてのファイルがUTF-8であると見なされるようになりました

作成日 2018年05月10日  ·  3コメント  ·  ソース: r-lib/testthat

私は対処しようとしています:

警告メッセージ:encodingは非推奨になりました。すべてのファイルがUTF-8であると見なされるようになりました。」

パッケージGGIRのtest-directoryおよびsourceを機能するtestthatによって生成されます。

この警告メッセージは、パッケージ全体をテストするときにのみ表示され、test_file()を使用して個々のテストを実行するときは表示されません。

役に立たなかったのは:

  • 各テストファイルの先頭に、library(mypackagename)の1行下にoptions(encoding = "UTF-8")を追加します。
  • ライブラリ(mypackagename)の1行下のtestthat.Rにoptions(encoding = "UTF-8")を追加します。
  • 引数の追加fileEncoding="UTF-8"するすべての私のコールにwrite.table

UTF-8エンコーディングを使用しているかどうかに関係なく、警告メッセージが出力され、実際には存在しない問題を修正しようとしている可能性がありますか? はいの場合、警告メッセージは警告ではなくメモにする必要がありますか? そうでない場合は、この警告メッセージの原因と対処方法について教えてください。

ありがとう、ヴィンセント(そして素晴らしいパッケージに感謝します!)

私のsessionInfo():

R version 3.4.4 (2018-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.4 LTS
Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.18.so
locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=nl_NL.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=nl_NL.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=nl_NL.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=nl_NL.UTF-8 LC_IDENTIFICATION=C       
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[1] testthat_2.0.0 GGIR_1.5-22   
loaded via a namespace (and not attached):
[1] compiler_3.4.4      magrittr_1.5        R6_2.2.2            tools_3.4.4         yaml_2.1.18         Rcpp_0.12.16       
[7] data.table_1.10.4-3 rlang_0.2.0        

最も参考になるコメント

問題はdevtools::testにあると思いますが、これは次のことを行います。

testthat_args <- c(testthat_args, load_helpers = FALSE, 
      encoding = pkg$encoding %||% "unknown")

これにより、現在は非推奨の引数になっているにもかかわらず、 encodingが常に設定されていることが保証されます。 これらの引数を使用してtestthat::test_dirが呼び出されると、次のようになります。

  if (!missing(encoding) && !identical(encoding, "UTF-8")) {
    warning("`encoding` is deprecated; all files now assumed to be UTF-8", 
      call. = FALSE)
  }

警告が発生します。

修正は、 testthatが特定のバージョンよりも小さい場合にのみ、 encoding引数を追加することです。

全てのコメント3件

問題はdevtools::testにあると思いますが、これは次のことを行います。

testthat_args <- c(testthat_args, load_helpers = FALSE, 
      encoding = pkg$encoding %||% "unknown")

これにより、現在は非推奨の引数になっているにもかかわらず、 encodingが常に設定されていることが保証されます。 これらの引数を使用してtestthat::test_dirが呼び出されると、次のようになります。

  if (!missing(encoding) && !identical(encoding, "UTF-8")) {
    warning("`encoding` is deprecated; all files now assumed to be UTF-8", 
      call. = FALSE)
  }

警告が発生します。

修正は、 testthatが特定のバージョンよりも小さい場合にのみ、 encoding引数を追加することです。

プルリクエスト#767でこの問題を解決しました。 @kenahoo、あなたの提案とは少し異なる解決策について行きました。 フィードバックを聞きたい。

devtoolsで修正されました。

このページは役に立ちましたか?
0 / 5 - 0 評価