我有一个 eunit 测试,它生成一个唯一的节点名称并开始分发:
{A,B,C} = now(),
Nodename = list_to_atom(lists:flatten(io_lib:format(
"test-~b-~b-~b@localhost", [A, B, C]))),
{ok, _} = net_kernel:start([Nodename, shortnames]),
只要分布式 Erlang 节点在以前的某个时间在机器上运行,因此 epmd 仍在运行,但在构建服务器上,我不能假设是这种情况。
我通过将其添加到我的测试中解决了这个问题:
_ = os:cmd("epmd -daemon"),
但感觉就像一个黑客。有没有更好/更好的方法来确保在运行之前启动 epmd net_kernel:start
?