Erlang 通用测试全局注册名
Erlang common test global registered names
我正在使用通用测试框架为基于牛仔的服务做一些 RPC 测试。
该服务依赖于我在另一个节点上托管的应用程序。在我连接到该节点的应用程序代码中。
普通测试中:
ct:print(默认值,50,“~p”,[节点()])。
Returns
[mynode@localhost]
但是
ct:print(默认值,50,“~p”,[全局:registered_named()])。
returns
[]
我按照此处列出的步骤进行操作 Globally registered process is not registered
但这似乎没有任何效果。如果我启动一个 shell,手动连接,列出节点,然后执行我的远程函数,一切正常。普通测试是否有一些独特的东西会阻止它工作?远程节点是否必须由通用测试框架管理?
global 需要一些时间才能看到所有节点上的所有名称。您是否尝试过在 net_adm:ping 或您用来连接节点的任何方式之后等待一段时间?
如果您依赖可见的全局名称,您可能应该通过轮询全局的注册名称来等待它们,直到您需要的一切都可见为止。
它可能适用于 shell,因为你比 运行 测试用例慢。
我正在使用通用测试框架为基于牛仔的服务做一些 RPC 测试。
该服务依赖于我在另一个节点上托管的应用程序。在我连接到该节点的应用程序代码中。
普通测试中: ct:print(默认值,50,“~p”,[节点()])。 Returns [mynode@localhost]
但是 ct:print(默认值,50,“~p”,[全局:registered_named()])。 returns []
我按照此处列出的步骤进行操作 Globally registered process is not registered
但这似乎没有任何效果。如果我启动一个 shell,手动连接,列出节点,然后执行我的远程函数,一切正常。普通测试是否有一些独特的东西会阻止它工作?远程节点是否必须由通用测试框架管理?
global 需要一些时间才能看到所有节点上的所有名称。您是否尝试过在 net_adm:ping 或您用来连接节点的任何方式之后等待一段时间?
如果您依赖可见的全局名称,您可能应该通过轮询全局的注册名称来等待它们,直到您需要的一切都可见为止。
它可能适用于 shell,因为你比 运行 测试用例慢。