我想知道如何在測試時禁用Elixir中的日誌記錄。在我當前的代碼中,我測試了記錄器消息,所以我不想完全禁用它,但隱藏消息,直到任何測試停止傳遞。測試時抑制記錄器
我使用mix和ExUnit來管理和測試我的項目。
mix test
Compiling 2 files (.ex)
.........
17:59:18.446 [warn] Code seems to be empty
.
17:59:18.447 [warn] Code doesn't contain HLT opcode
.
17:59:18.448 [warn] Code doesn't contain HLT opcode
17:59:18.448 [error] Label error doesn't exist
.....
Finished in 0.07 seconds
16 tests, 0 failures
我沒有提到,但我試過使用第一種方法,它保存了錯誤,加上基於警告的測試停止了傳遞。第二種方式或多或少是同一件事,所以我會嘗試添加自己的後端或者將它保留原樣。無論如何,謝謝你的回答。 – Jump3r
只有具有路徑'/ dev/null'的後端纔會執行_exactly_您想要的操作:它將抑制任何輸出到任何地方(包括console),但它會使記錄器的gen_event服務器保持活動狀態,因此您可以測試任何您想要的內容。 _Sidenote:_我覺得你想要抑制錯誤很奇怪。 – mudasobwa
嗯,我認爲這在開始測試錯誤時並不奇怪。如果你爲它編寫10-15個測試,看到這個預期會出現的所有錯誤消息變得非常煩人。 – Jump3r