Erlang init_per_group终止gen_server

时间:2016-04-17 13:22:39

标签: erlang otp gen-server common-test

通用测试init_per_group/2在使用gen_server:start_link启动时终止gen_server。 但是可以使用gen_server:start启动服务器。

gen_server可以使用startstart_link中的任何一种方法(init_per_suite/1init_per_testcase/2)启动。

为什么无法使用init_per_group/2gen_server:start_link中启动gen_server?

1 个答案:

答案 0 :(得分:2)

这是因为init_per_group在一个单独的进程中运行,就像每个测试用例一样,并且该进程以退出原因退出,该原因传达有关组初始化成功/失败的信息。来自test_server:run_test_case_eval

exit({Ref,Time,Value,Loc,Opts}).

由于gen_server与运行init_per_group的流程相关联,并且由于退出原因不是normalgen_server没有捕获退出,因此{{ 1}}进程以相同的退出原因退出。

另一方面,gen_server在与测试用例本身相同的过程中运行,因此不会出现此问题。