Modül için bir modül oluşturan bir makro var ve bu yapı için bir protokol uygular.Elixir 1.2 veya daha yüksek sürümlerdeki protokolleri yeniden güncelleştirme
Paketimde, makroyu çağıran basit bir test modülüne sahibim ve sonra oluşturulan modül/struct/protocol uygulamasıyla ilgili iddialar yapıyorum. Bir test, protokol işlevinin uygulandığını ileri sürmek için struct ile çağırır. 1.2'den önce bu işe yaradı, ama şimdi başarısız oluyor ve paketi çalıştırırken aşağıdaki uyarıyı alıyorum. Bu işlevsellik yeterince benim paketi testlerinin kalanını inanıyorum
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
Ben, şimdilik bu testi kaldırdık, ama merak ediyorum tekrar bu işi yapmak için bir yolu varsa, ya da en azından sessizlik uyarısı az .
Process.consilodate/2
ile oynandım, ancak başarısız oldu. Elixir 1.2 başlayarak
Ah, "konsolide_protocols" karma proje seçeneğinin farkında değildim. Teşekkür ederim. – lpil
Sadece açıklığa kavuşturmak için, proje seçeneğindeki 'mix.exs' dosyasında proje seçeneği karıştır seçeneğidir. Bunu görüyorsanız muhtemelen def projesi gibi bir şey yapmak istersiniz: [consolidate_protocols: Mix.env! =: Test] ' – Astery