問題タブ [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.
elixir - state[:pid] を使用したメッセージの受け渡しが失敗し、新たに生成された pid が機能する
私の2番目のテストは失敗しています。
ランナー モジュール:
このテストは合格します:
1 つのテスト (実行) はセットアップで動作するのに、もう 1 つのテスト (実行) では動作しないのはなぜですか?
elixir - Elixir で複数行の出力をテストするにはどうすればよいですか?
次のコードをテストするにはどうすればよいですか?
IO.puts
私のテストは現在このようになっていますが、文字列ではなく戻り:ok
、おそらく完全な文字列に改行文字が含まれていないため、失敗しています。
おそらくIO.puts
、このユースケースでは間違った機能です。もしそうなら、どのような代替手段を使用できますか?
前もって感謝します。
elixir - ExUnit - すべてのテストの前に、DB セットアップ コードを 1 回実行する
おはようございます、
私の Elixir プロジェクトには、必要なデータをデータベースに挿入する、特に高価なデータベース セットアップ コードがいくつかあります。
@tag :insert_my_data
私は現在、このデータがコンストラクトを介して必要なテストの前に挿入されるようにテストを行っています。テスト ヘルパーに次のようなコードがあります。
これの問題は、このコードを何百回も実行しなければならず、遅いことです。
を呼び出す前に、コードが一度自動的にmix test
実行され、Ecto が提供するトランザクション ロールバック機能が (空のデータベースではなく) この既知の状態にリセットされると、よりうまく機能します。
どうすればこれを達成できますか?
ありがとう!
elixir - あるファイル タイプを別のファイル タイプに変換する関数をテストする方法
私は、電子ブック形式 ( .pdf
、.epub
) を.mobi
Kindle で使用するための形式に変換する小さな escript アプリに取り組んでいます。実際のファイルと新しい変換されたファイルを生成します。
今のところ、スクリプトはディレクトリの内容をループし、 Calibre.mobi
パッケージを呼び出して適切なファイルを に変換するだけですが、後で自分で変換を行いたいと考えています。
elixir - IEx 内で ExUnit テストを実行する方法
テストで起動しようとしてIEx.pry
います。ただし、iex セッション内でテストを実行することはできません。ミックスを使用していないことに注意してください。
ハングアップして実行しようとするとExUnit.run
、最終的にタイムアウトします。
コードが正しく読み込まれ、TheTest."test adds two numbers"({})
. しかし、スイート全体を起動してこれを行うことを望んでいました。
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」統合テストで所有権の問題をどのように解決できるかということです。
elixir - ExUnit と iex でフィクスチャと testhelp 関数を使用できるようにします
ExUnitで自動的に、iexでインタラクティブにテストしたいプロジェクトを書いています。私のプロジェクトが次のようになっているとします。
mix テストを実行すると、fixtures/complex_struct.exs が検出され、テストが正常に実行されます。次のコマンドを使用してコードをデバッグすることも好きです
そうすれば、lib/the_function.ex にアクセスしてデバッグできます。
しかし、次のようにロードしない限り、fixtures/complex_struct.exs にはアクセスできません。
iex によってロードされるものを決定するものと、iex -S mix を実行したときに lib 内のすべてのモジュールとすべてのフィクスチャを使用可能にするにはどうすればよいですか?