我有几个EUnit测试来测试我创建的gen_server
的功能。例如,让我们为我正在编写的IRC服务器进行以下测试:
empty_channel_details_when_getting_details_of_channel_that_does_not_exist_test() ->
start(),
?assertMatch({ok, #channel_details{name = "name", users = #{}}}, irc_channel_manager_server:get_channel_details("name")).
当然,因为我使用TDD方法创建了这个,运行我的gen_server会导致case_clause
退出,因为我显然还没有编写该测试用例。
这个问题是导致EUnit显示的输出,即:
=======================================================
Failed: 0. Skipped: 0. Passed: 0.
One or more tests were cancelled.
error
我个人认为这是错误的。我的测试不仅显然失败了,而且在这个测试模块中总共编写了3个测试用例,一个失败意味着其他两个测试都没有尝试过。
有没有办法让EUnit将退出或异常视为失败并且不会导致它取消测试运行?这使得确定意外断裂变化的范围变得非常困难。