Ho una macro che crea un modulo, una struttura per il modulo e implementa un protocollo per quella struttura.Riconsolidare i protocolli in elisir 1.2 o successivo
Nella mia suite ho un semplice modulo di test che chiama la macro, e quindi fa asserzioni sull'implementazione modulo/struct/protocollo generato. Un test chiama la funzione di protocollo con la struttura per affermare che è stata implementata. Prima di 1.2 questo ha funzionato, ma ora fallisce e ricevo il seguente avviso quando si esegue la suite.
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
Ho rimosso questo test per ora, come credo che il resto dei miei test interno questa funzionalità sufficientemente, ma io sono curioso di sapere se c'è un modo per rendere di nuovo questo lavoro, o per lo meno il silenzio l'avviso .
Ho giocato con Process.consilodate/2
, ma non ha avuto successo.
Ah, non ero a conoscenza dell'opzione di mix del progetto 'consolidate_protocols'. Grazie. – lpil
Giusto per chiarire, l'opzione di mix dei progetti è un'opzione nel file 'mix.exs' nella funzione' project'. Se vedi questo probabilmente vuoi qualcosa come 'def project, fai: [consolidate_protocols: Mix.env! =: Test]' – Astery