問題タブ [testthat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - SummaryReporter の出力が見つかりません
私はどこでも見ましたが、SummaryReporter がテスト レポートを書いている場所を見つけることができませんか? 1 回失敗すると、スクリプトはエラーで停止します。理想的には、すべてのテストが実行され、結果がファイルに出力されます。
r - RUnitまたはtestthatでテストケースを自動的に生成します
RUnitでテストケースを自動的に生成するにはどうすればよいですか?
たとえば、単純なsum()関数があるとします。
この関数を一連の異なるテストケースでテストしたいと思います。
各ベクトルの最初の2つの要素はxとyであり、3番目はsum(x、y)関数の期待される出力です。
Pythonでは、test_casesの各要素のテストケースを生成する関数を簡単に作成できますが、Rで実装する方法がわかりません。RUnitとそのドキュメントを確認しましたが、類似したものはありません。ここでの最良の解決策は何ですか?
これは私がPythonでそれを書く方法です(nosetestを使用してテストユニットを起動します):
r - testthatパッケージでテストを失敗させる方法は?
前提条件が満たされていない場合(ファイルの欠落など)、失敗させたいテストがあります。
明確にするために、これが私がやりたい例です:
今私の質問は次のとおりです:testthatパッケージに何かfail()
のような期待がありますか、それとも私はいつも書く必要がありますか?expect_true(FALSE)
r - S4 コードが関係している場合、testthat::auto_test() が失敗するようです
ここ数週間、私はtestthatパッケージの単体テスト機能を日々の仕事にますます統合してきました。
コードのどこかを変更するたびに、すべての単体テストを自動的に実行する autotest-feature が特に気に入っています。ただし、コードディレクトリに S4 定義 (クラス、ジェネリックメソッド、カスタムメソッド) が含まれている状況でtestthatの関数を使用すると、小さなバグまたは少なくとも望ましくない動作に遭遇したと思います。auto_test()
質問
この動作はバグの下に示されていますか、それとも使用時に何か間違ったことをしていauto_test()
ますか?
以下に、最初にいくつかのサンプル ファイルを作成する必要がある図を示します。
予選
作業ディレクトリを設定
ディレクトリを確保する
S4 参照クラス定義の作成
classes.R
ディレクトリにファイルを作成しますsrc
ジェネリック メソッド定義の作成
generics.R
ディレクトリにファイルを作成しますsrc
カスタム メソッド定義の作成
methods.R
ディレクトリにファイルを作成しますsrc
単体テストを作成する
ファイルtest_getName_ref.R
とtest_setName_ref.R
ディレクトリを作成しますtests
図
実行auto_test()
するとエラーが発生します。
私の最初の推測ではtestthat::source_dir()
、おそらく引数のために、ソーシングを処理する方法に関係があるのではないでしょenv
うか?
続行するには、CRTL + BREAK で自動テストをオフにする必要があります (Windowsの場合。他のプラットフォームを使用している場合は、この記事のセクション「自動テスト」を参照してください)。
ここで、最初にコードを手動でソースして実行するtest_dir()
と、すべて正常に動作するように見えます。
r - R パッケージからの環境のエクスポート
rmongodb
パッケージをラップし、MongoDB を操作するための開発者向けのインターフェイスを作成するR パッケージを開発しています。パッケージはproto
内部で使用します。
と呼ばれる proto オブジェクト (環境) を介して単一のファクトリ メソッドをエクスポートしたいと思いますMongoDB
。その定義は次のとおりです。
RStudio での開発中devtools
およびローカルでのテスト中、これは問題にはならないようです。ただし、いくつかの問題が発生しています。
devtools::check()
「名前空間の依存関係は必要ありません: 'MongoDB'」で失敗するimport(MongoDB)
私の NAMESPACE ファイルに入れることを主張します。R CMD check
このインポート ディレクティブを削除すると、手動で追加しても
R CMD check
、テストの実行中に「オブジェクト 'MongoDB' が見つかりません」というエラーが表示されて失敗します。ただし、RStudio では問題なく動作します。testthat
export(MongoDB)
devtools::test()
proto
環境であるオブジェクトを R パッケージからエクスポートするための推奨される方法は何ですか?
アップデート:
以下のガボールの提案に従って、それがデータとしてMongoDB.Rd
宣言MongoDB
されていることを確認しました(リンクにはソースがあります)。MongoDB
テスト(を使用)で表示されないというエラーが引き続き発生しますtestthat
。私のDESCRIPTION
ファイルはここにあり、NAMESPACE
ここにあります。
r - datadist()+ options()を呼び出してrmsを設定すると失敗するテスト
パッケージを使用して単体テストを実行しようとしていtestthat
ますが、パッケージと一緒に正しく動作させることができないようですrms
。次の例:
このエラーを返します:
Design(eval.parent(m))のエラー:options(datadist =)のデータセットddistが見つかりません
これは、print(ddist)が機能し、options( "datadist")が適切な変数を返したとしてもです。testthat
エラーの原因となる別の変数スコープがありますか?
アップデート
パッケージディレクトリ(Eclipse StatET)で開始されたRコンソールでテストを実行します。
RCMDチェック--as-cranでも同じエラーが発生します
r - R で testthat を使用してフォルダーの存在をテストする方法
残りのワークフロー用にいくつかのフォルダーを設定する関数があります
私はそれを単体テストしようとしていますが、私のエラーテストはうまくいきます:
しかし、成功するための私のテストでは、そうではありません...
エラー
- エラー: analysisFolderCreation: 正しい入力が与えられた場合、関数は正しく実行されます --------------------------------------- ------------------------ 関数「analysisFolderCreation」が見つかりませんでした
フォルダーの存在を確認しているので、関数 analysisFolderCreation を実際にその中に含む期待形式でこれをテストする方法がわかりません。
dev_mode()
テストファイルを明示的に実行して実行していますtest_file()
テストを書き直して機能させる方法を提供したり、存在チェックの期待を提供したりできる人はいますか?