問題タブ [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.

0 投票する
2 に答える
1564 参照

r - SummaryReporter の出力が見つかりません

私はどこでも見ましたが、SummaryReporter がテスト レポートを書いている場所を見つけることができませんか? 1 回失敗すると、スクリプトはエラーで停止します。理想的には、すべてのテストが実行され、結果がファイルに出力されます。

0 投票する
2 に答える
1085 参照

r - RUnitまたはtestthatでテストケースを自動的に生成します

RUnitでテストケースを自動的に生成するにはどうすればよいですか?

たとえば、単純なsum()関数があるとします。

この関数を一連の異なるテストケースでテストしたいと思います。

各ベクトルの最初の2つの要素はxとyであり、3番目はsum(x、y)関数の期待される出力です。

Pythonでは、test_casesの各要素のテストケースを生成する関数を簡単に作成できますが、Rで実装する方法がわかりません。RUnitとそのドキュメントを確認しましたが、類似したものはありません。ここでの最良の解決策は何ですか?

これは私がPythonでそれを書く方法です(nosetestを使用してテストユニットを起動します):

0 投票する
2 に答える
374 参照

r - testthatパッケージでテストを失敗させる方法は?

前提条件が満たされていない場合(ファイルの欠落など)、失敗させたいテストがあります。

明確にするために、これが私がやりたい例です:

今私の質問は次のとおりです:testthatパッケージに何かfail()のような期待がありますか、それとも私はいつも書く必要がありますか?expect_true(FALSE)

0 投票する
0 に答える
474 参照

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.Rtest_setName_ref.Rディレクトリを作成しますtests

実行auto_test()するとエラーが発生します。

私の最初の推測ではtestthat::source_dir()、おそらく引数のために、ソーシングを処理する方法に関係があるのではないでしょenvうか?

続行するには、CRTL + BREAK で自動テストをオフにする必要があります (Windowsの場合。他のプラットフォームを使用している場合は、この記事のセクション「自動テスト」を参照してください)。

ここで、最初にコードを手動でソースして実行するtest_dir()と、すべて正常に動作するように見えます。

0 投票する
2 に答える
801 参照

r - R パッケージからの環境のエクスポート

rmongodbパッケージをラップし、MongoDB を操作するための開発者向けのインターフェイスを作成するR パッケージを開発しています。パッケージはproto内部で使用します。

と呼ばれる proto オブジェクト (環境) を介して単一のファクトリ メソッドをエクスポートしたいと思いますMongoDB。その定義は次のとおりです。

RStudio での開発中devtoolsおよびローカルでのテスト中、これは問題にはならないようです。ただし、いくつかの問題が発生しています。

  • devtools::check()「名前空間の依存関係は必要ありません: 'MongoDB'」で失敗するimport(MongoDB)私の NAMESPACE ファイルに入れることを主張します。R CMD check

  • このインポート ディレクティブを削除すると、手動で追加してもR CMD check、テストの実行中に「オブジェクト 'MongoDB' が見つかりません」というエラーが表示されて失敗します。ただし、RStudio では問題なく動作します。testthatexport(MongoDB)devtools::test()

proto環境であるオブジェクトを R パッケージからエクスポートするための推奨される方法は何ですか?

アップデート:

以下のガボールの提案に従って、それがデータとしてMongoDB.Rd宣言MongoDBされていることを確認しました(リンクにはソースがあります)。MongoDBテスト(を使用)で表示されないというエラーが引き続き発生しますtestthat。私のDESCRIPTIONファイルはここにあり、NAMESPACEここあります。

0 投票する
2 に答える
1581 参照

r - datadist()+ options()を呼び出してrmsを設定すると失敗するテスト

パッケージを使用して単体テストを実行しようとしていtestthatますが、パッケージと一緒に正しく動作させることができないようですrms。次の例:

このエラーを返します:

Design(eval.parent(m))のエラー:options(datadist =)のデータセットddistが見つかりません

これは、print(ddist)が機能し、options( "datadist")が適切な変数を返したとしてもです。testthatエラーの原因となる別の変数スコープがありますか?

アップデート

パッケージディレクトリ(Eclipse StatET)で開始されたRコンソールでテストを実行します。

RCMDチェック--as-cranでも同じエラーが発生します

0 投票する
1 に答える
932 参照

r - R で testthat を使用してフォルダーの存在をテストする方法

残りのワークフロー用にいくつかのフォルダーを設定する関数があります

私はそれを単体テストしようとしていますが、私のエラーテストはうまくいきます:

しかし、成功するための私のテストでは、そうではありません...

エラー

  1. エラー: analysisFolderCreation: 正しい入力が与えられた場合、関数は正しく実行されます --------------------------------------- ------------------------ 関数「analysisFolderCreation」が見つかりませんでした

フォルダーの存在を確認しているので、関数 analysisFolderCreation を実際にその中に含む期待形式でこれをテストする方法がわかりません。

dev_mode()テストファイルを明示的に実行して実行していますtest_file()

テストを書き直して機能させる方法を提供したり、存在チェックの期待を提供したりできる人はいますか?

0 投票する
1 に答える
617 参照

c - R パッケージの /src フォルダー内のコードの単体テスト?

私は、計算に C コードを多用する R パッケージに貢献しています。

testthatパッケージを使用して R 関数のテストの作成を開始し、ここの手順に従ってinst/testsテストを配置しました。

testthat パッケージは、C 関数を直接テストするのに適していますか (たとえば、R インターフェイスがないもの)? それとも、別の C テスト パッケージを見つけますか? もしそうなら、1) これらのテストはどこに行けばいいですか? 2) 実行中R CMD checkにテストを実行するにはどうすればよいですか? 3) このコンテキストで特に適切な C テスト パッケージはありますか?