7
我有一個宏創建一個模塊,一個模塊的結構,併爲該結構實現一個協議。Elixir 1.2或更高版本中的重新合併協議
在我的套件中,我有一個調用宏的簡單測試模塊,然後對生成的模塊/結構/協議實現進行斷言。一個測試使用該結構調用協議函數來聲明它已經實現。在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
,但沒有成功。
啊,我不知道'鞏固_協議'混合項目選項。謝謝。 – lpil
只是爲了澄清,在'project'函數的'mix.exs'文件中混合項目選項是選項。如果你看到這個,你可能想要類似'def project,do:[consolidate_protocols:Mix.env!=:test]' – Astery