我想知道如何在测试时禁用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