モジュールを作成するマクロ、モジュールの構造体、およびその構造体のプロトコルを実装しています。Elixir 1.2以降のプロトコルを再結合
私のスイートでは、マクロを呼び出し、生成されたモジュール/構造体/プロトコルの実装でアサーションを作成する単純なテストモジュールがあります。 1つのテストでは、構造体が実装されていることを宣言するために構造体とともにプロトコル関数を呼び出します。 1.2以前ではこれはうまくいきましたが、今は失敗し、スイートを実行するときに次の警告が表示されます。私はこの機能を十分に私のスイートのテストの残りの部分を信じているよう
test/dogma/rule_builder_test.exs:7: warning: the Dogma.Rule \
protocol has already been consolidated, an implementation for \
Dogma.RuleBuilderTest.MagicTestRule has no effect
私は、今のところ、このテストを削除しているが、私は興味があり、再びこの作品を作るための方法がある場合、または少なくとも沈黙の警告で。
私はProcess.consilodate/2
で遊んだが、失敗しました。
ああ、私は 'consolidate_protocols'ミックスプロジェクトオプションを知らなかった。ありがとうございました。 – lpil
明確にするために、プロジェクトのオプションを混在させるには、 'project'関数の' mix.exs'ファイルにオプションがあります。これを見れば、おそらく 'defプロジェクトのようなものが欲しいでしょう:[consolidate_protocols:Mix.env!=:test]' – Astery