1

我有几个 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 将退出或异常视为失败而不导致它取消测试运行?这使得确定意外中断更改的范围变得非常困难。

4

0 回答 0