問題タブ [ex-unit]

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 に答える
33 参照

elixir - state[:pid] を使用したメッセージの受け渡しが失敗し、新たに生成された pid が機能する

私の2番目のテストは失敗しています。

ランナー モジュール:

このテストは合格します:

1 つのテスト (実行) はセットアップで動作するのに、もう 1 つのテスト (実行) では動作しないのはなぜですか?

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

elixir - Elixir で複数行の出力をテストするにはどうすればよいですか?

次のコードをテストするにはどうすればよいですか?

IO.puts私のテストは現在このようになっていますが、文字列ではなく戻り:ok、おそらく完全な文字列に改行文字が含まれていないため、失敗しています。

おそらくIO.puts、このユースケースでは間違った機能です。もしそうなら、どのような代替手段を使用できますか?

前もって感謝します。

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

elixir - ExUnit - すべてのテストの前に、DB セットアップ コードを 1 回実行する

おはようございます、

私の Elixir プロジェクトには、必要なデータをデータベースに挿入する、特に高価なデータベース セットアップ コードがいくつかあります。

@tag :insert_my_data私は現在、このデータがコンストラクトを介して必要なテストの前に挿入されるようにテストを行っています。テスト ヘルパーに次のようなコードがあります。

これの問題は、このコードを何百回も実行しなければならず、遅いことです。

を呼び出す前に、コードが一度自動的にmix test実行され、Ecto が提供するトランザクション ロールバック機能が (空のデータベースではなく) この既知の状態にリセットされると、よりうまく機能します。

どうすればこれを達成できますか?

ありがとう!

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

elixir - あるファイル タイプを別のファイル タイプに変換する関数をテストする方法

私は、電子ブック形式 ( .pdf.epub) を.mobiKindle で使用するための形式に変換する小さな escript アプリに取り組んでいます。実際のファイルと新しい変換されたファイルを生成します。

今のところ、スクリプトはディレクトリの内容をループし、 Calibre.mobiパッケージを呼び出して適切なファイルを に変換するだけですが、後で自分で変換を行いたいと考えています。

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

elixir - IEx 内で ExUnit テストを実行する方法

テストで起動しようとしてIEx.pryいます。ただし、iex セッション内でテストを実行することはできません。ミックスを使用していないことに注意してください。

ハングアップして実行しようとするとExUnit.run、最終的にタイムアウトします。

コードが正しく読み込まれ、TheTest."test adds two numbers"({}). しかし、スイート全体を起動してこれを行うことを望んでいました。

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

elixir - アンブレラ内の統合テスト Web アプリケーションに関する問題

私はフェニックスアプリケーションに取り組んでいます。このアプリケーションは、アンブレラ アプリの一部です。この傘には、アプリケーションのさまざまな領域を担当する小さなアプリケーションがあります。

  • フェニックス Web API (「API」)
  • コア ビジネス ロジック (「コア」)
  • ユーザー認証 (「auth」)
  • データベース スキーマ (「db」)

「api」は「core」と「auth」の両方に依存しますが、これら 2 つのアプリケーションは「db」に依存します。

「db」アプリだけが ecto リポジトリを持ち、他のすべてのアプリにはありません。リポジトリは「db」アプリによって開始され、監視されます。

ここで、「api」アプリケーションでコントローラーをテストしたいと思います。ここでectoの問題に遭遇します。コントローラーアクションをテストすると、このアクションは「auth」または「core」から関数を呼び出し、Repo「db」からの関数を呼び出します( などRepo.insert/2)。これにより、OwnershipError次のようになります。

私の問題は、「api」アプリケーションが「db」アプリケーションを認識していないため、接続チェックアウトを実行できないため、「api」テストで提案された解決策を使用してこのエラーを修正する方法がわからないことです。「db」プロジェクトに直接依存するアプリケーションでこのエラーが発生したとき、「共有モード」ソリューションを適用できました。

私の質問は、「api」統合テストで所有権の問題をどのように解決できるかということです。

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

elixir - ExUnit と iex でフィクスチャと testhelp 関数を使用できるようにします

ExUnitで自動的に、iexでインタラクティブにテストしたいプロジェクトを書いています。私のプロジェクトが次のようになっているとします。

mix テストを実行すると、fixtures/complex_struct.exs が検出され、テストが正常に実行されます。次のコマンドを使用してコードをデバッグすることも好きです

そうすれば、lib/the_function.ex にアクセスしてデバッグできます。

しかし、次のようにロードしない限り、fixtures/complex_struct.exs にはアクセスできません。

iex によってロードされるものを決定するものと、iex -S mix を実行したときに lib 内のすべてのモジュールとすべてのフィクスチャを使用可能にするにはどうすればよいですか?