問題タブ [eunit]

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 投票する
1 に答える
613 参照

unit-testing - 複数のアプリでの Eunit エラー

次のディレクトリ構造があります。

myappメインディレクトリで次のように rebar を使用して eunit を実行します。

の 3 つのアプリに対して eunit を正しく実行しますapps/。その後、親myappディレクトリで eunit を実行しようとし、次のエラーをスローします。

質問:これを修正したり、eunit が親myappディレクトリに対して実行されないようにするにはどうすればよいですか?

メイン ディレクトリのrebar.configファイルはmyapp次のようになります。

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

erlang - rebar eunit の実行時にランタイム引数を erlang に渡す

私のスタートアップ スクリプトでは、次のように erlang を開始しています。

現在、単体テストを実行しようとしてrebar eunitいるときに、-args_file オプションなどのカスタム ランタイム引数を rebar が開始する erlang プロセスに渡す方法はありますか? ドキュメントを高低から無駄に検索しました...

助けてくれてありがとう。

0 投票する
4 に答える
995 参照

erlang - EUnitに例外スタックトレースを出力しない

EUnitを使用してテストを作成していますが、コンソールに例外の詳細が出力されることはありません。

次のErlangシェル出力でこのmodule:exp_test()を実行します

しかし、EUnitの出力では次の

EUnitは例外トレース情報を何も出力しません

eunitで詳細設定を試していますが、効果がありません。

eunitテスト結果に例外の詳細を出力したい。

ありがとう〜

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

unit-testing - EUnit テスト ジェネレーターとは

EUnitに関するドキュメントを読みましたが、テスト ジェネレーターの目的がわかりません。

ここで素敵なチュートリアルも読みましたが、まだ運がありません(少し高度すぎます)。

テスト ジェネレーター関数が一連のテストを返し、それが EUnit によって実行されることをある程度理解しています。(そうですか?)

残念ながら、私が現在自信を持っている唯一のことは、次のようなテストを書くことができるということです:

問題は、EUnit のテスト ジェネレーターは何のために必要であり、単純なテスト オブジェクトとどのような関係があるのか​​ということです。

PSさまざまな自動化ツールと概念の助けを借りて作成された単体テストの素晴らしい世界(例)があることは知っていますが、その世界に入る方法がわかりません。

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

erlang - EUnitが.beamファイルを.eunit/ebinにコンパイルするのはなぜですか?

免責事項:この質問の作者は、主にErlang/OTPの理論的知識を持っています。

myapp/ebinを介してディレクトリ内の非Erlang実行可能ファイルを呼び出す小さなOTPアプリケーションがありますopen_port()。アプリケーション自体を実行すると、すべてがうまくいき、実行可能ファイルへのポートが正常に開かれます。

しかし、アプリケーションの単体テストを実行しようとすると、open_port()失敗に依存するものが失敗します。EUnitこれは、アプリケーションを起動したときに、の下で実行可能ファイルを見つけようとするためmyapp/.eunit/ebinです。

アプリケーション自体のコードを変更せずに、その動作を変更するにはどうすればよいですか?アプリケーション自体を実行するときと同じ現在のディレクトリでEUnitテストを実行するにはどうすればよいですか?(つまり、EUnitを実行できるようにするためだけに、実行可能ファイルへのパスを提供するコードを変更することはお勧めできません)。

編集:Erlangメーリングリストのアドバイスに従いましたが、をcode:priv_dir(myapp_name)返します{error, bad_name}

編集:ファイルが含まれていて、ファイルとファイルの両方が.eunit/含まれていることがわかります。今、私は完全に迷子になっています。を実行すると、コマンドを実行します。このコマンドは、ディレクトリ内の対応するファイルを呼び出すディレクトリ内の各ファイルを呼び出します(ファイルがテスト中に実行されたことを明確に示しています)。なんでそうなの?なぜ代わりにディレクトリからファイルを実行する必要があるのですか?modulename.beamebin/modulename.beammodulename_tests.beammake testrebareunitmodulename_tests.beamebin/modulename.beam.eunit/filename:absname("")modulename.beam.eunit/modulename.beam.eunit/ebin/

myapp/ebinとにまったく同じ.beamファイルが必要なのはなぜmyapp/.eunit/ebinですか?

PS公式ドキュメントを読みましたが、解決策が見つかりませんでした。

0 投票する
4 に答える
1194 参照

erlang - ?_assertEqualが失敗したときに完全な期待値と値の情報を表示する

(かなり長い)バイナリが生成される単体テストをコーディングしています。生成されたバイナリは、生成されると予想されるものと等しいと断言したいと思います。「 rebareunit 」を介してeunitを実行しています。

つまり、このアサーションが失敗すると、出力は「...」で省略されます。完全な出力を確認して、違いがどこにあるかを特定できるようにします。

現在、一時的な解決策として「?debugFmt() 」を使用していますが、それに代わるもの(「 ?_assertEqual() 」に適用できる構成オプションまたは引数)があるかどうかを知りたいので、出力アサーションが失敗した場合にのみ表示されます)。

前もって感謝します!

編集:レゴシアの答えのために、私は複数のアサーションを持つテストジェネレーターを使用したテストサンプルを含めています:

0 投票する
3 に答える
2629 参照

erlang - Erlang で Eunit からテスト結果を取得する

単体テストを行うために Erlang と EUnit を使用しています。単体テストの実行を自動化するテスト ランナーを作成したいと考えています。問題は、eunit:test/1 が「エラー」または「OK」のみを返すように見え、テストのリストと、何が成功したか失敗したかという観点からそれらが返したものではないことです。

テストを実行し、実行されたテストとその成功/失敗状態の何らかの形式のデータ構造を取得する方法はありますか?

0 投票する
3 に答える
2522 参照

rest - Erlang YAWS: シンプルな REST Web サービスをテストするには?

シンプルな Erlang YAWS ベースの RESTful アプリケーションで、RESTful API に HTTP リクエストを送信し、サーバーからレスポンスを取得して、それらのレスポンスをテストする一連のテストを作成したいと考えています。

各「send-request-get-request-test」テストを EUnit 内から実行できれば (テスト ジェネレーターを使用できるようにして) 便利です。

rebarまた、この一連のテストを( )で実行できるようにしたいと考えていますmake test

最近 ibrowse別のアプリ(Mochiweb)で使っていたのですが、静かで使いづらいと感じました。

HTTP リクエストを YAWS RESTful アプリケーションに送信できる Erlang/OTP テストを作成する他のオプションはありますか? それを行う最も一般的な方法は何ですか?

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

erlang - Eunit テストは受信を待機しません

Eunit は受信を待ちません。eunit に特別なものはありますか。

test_account:login_test().直接呼び出すと、応答を受け取ることができます。

ありがとうございました。

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

erlang - ライブラリ アプリケーションに依存する Erlang EUnit テスト モジュール

少数のアプリケーションを含む中規模のリリースがあります。私は最近、いくつかの一般的な機能をリリース内のライブラリ アプリケーションにリファクタリングしました。undefこれにより、ライブラリ アプリケーションを必要とするものをテストするたび に、EUnit テストがメッセージで失敗しました。

セットアップは次のようなものです。

それで

次に、単体テストがsome_app:bar()失敗します。私はそれらを実行していrebar eunit skip_deps=trueます。私skip_deps=trueのリリースではサードパーティのアプリケーション (SQL など) を使用しているため、使用しています。

EUnitが依存関係なしでテスト対象のアプリを呼び出しているため、テストが失敗し始めると思いますか? これを修正する方法はありますか?依存関係を明示的に宣言するように .app ファイルを構成しました。リリースでは問題なく動作し、問題なく展開されてから約 1 日経ちましたが、テストに再び合格できれば、気分はずっと良くなります :)

(モッキング アプリを使用して をスタブ化するutils:foo/0こともできます。それが慣用的に理想的な場所であることがわかりますが、この場合はやり過ぎのように思えます。なぜなら、utils:foo/0(読む: 現実世界の対応物です) はいくつかの本当に単純なことを行うからです。)