阻止Erlang主管?
我正在尝试测试我的一个应用程序,它由一个主管和两个(不同的)工作人员组成。我正在使用eunit,因此在我的设置和清理中,我有:阻止Erlang主管?,erlang,Erlang,我正在尝试测试我的一个应用程序,它由一个主管和两个(不同的)工作人员组成。我正在使用eunit,因此在我的设置和清理中,我有: setup() -> {ok, Pid} = foo_sup:start_link(), Pid. cleanup(Pid) -> exit(Pid, kill). foo\u sup:start\u link/0定义为: start_link() -> supervisor:start_link({local, ?
setup() ->
{ok, Pid} = foo_sup:start_link(),
Pid.
cleanup(Pid) ->
exit(Pid, kill).
foo\u sup:start\u link/0
定义为:
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
然而,当我的测试运行时,我得到{badmatch,{error,{ready_start,}}}
,这意味着我的主管仍在运行
我如何:
关闭
信号,使主管杀死其子项并退出:
exit(Pid, shutdown).
您可能必须首先取消流程与测试的链接Ref = monitor(process, Pid),
receive
{'DOWN', Ref, process, Pid, _Reason} ->
ok
after 1000 ->
error(exit_timeout)
end.