9

我有一个带有顶级发布目录的 Rebar 项目,该目录仅包含组件应用程序作为依赖项并包含 reltool 配置。

我的一些应用程序在子目录中有 Common Test 套件test,我可以使用rebar ct.

现在我想为整个版本创建一个通用测试套件。但是,当我rebar ct skip_deps=true在顶级目录中运行时,我会得到:

Command 'ct' not understood or not applicable

如何让 Rebar 运行我的测试?

4

1 回答 1

10

Rebar 有三组模块(参见rebar.app):

  • any_dir_modules,适用于您项目中的任何目录;
  • app_dir模块,仅适用于包含匹配文件的目录src/*.app.srcebin/*.app(参见rebar_app_utils:is_app_dir/1);和
  • rel_dir模块,仅适用于包含reltool.configor的目录reltool.config.script(请参阅 参考资料rebar_rel_utils:is_rel_dir/1)。

rebar_ct负责运行 Common Test的模块属于该app_dir类别,因此您的顶级发布目录不符合条件。

您可以通过指定它是一个插件来解决这个问题rebar_ct,因为插件绕过了模块类别机制。将以下行放入您的rebar.config:

{plugins, [rebar_ct]}.

你会得到:

$ rebar ct skip_deps=true
==> foo (ct)
==> bar (ct)
==> my_rel (ct)
DONE.
Testing src.my_rel: TEST COMPLETE, 0 ok, 0 failed of 0 test cases
于 2012-06-29T15:54:51.740 回答