我有一个带有顶级发布目录的 Rebar 项目,该目录仅包含组件应用程序作为依赖项并包含 reltool 配置。
我的一些应用程序在子目录中有 Common Test 套件test
,我可以使用rebar ct
.
现在我想为整个版本创建一个通用测试套件。但是,当我rebar ct skip_deps=true
在顶级目录中运行时,我会得到:
Command 'ct' not understood or not applicable
如何让 Rebar 运行我的测试?
我有一个带有顶级发布目录的 Rebar 项目,该目录仅包含组件应用程序作为依赖项并包含 reltool 配置。
我的一些应用程序在子目录中有 Common Test 套件test
,我可以使用rebar ct
.
现在我想为整个版本创建一个通用测试套件。但是,当我rebar ct skip_deps=true
在顶级目录中运行时,我会得到:
Command 'ct' not understood or not applicable
如何让 Rebar 运行我的测试?
Rebar 有三组模块(参见rebar.app):
any_dir_modules
,适用于您项目中的任何目录;app_dir
模块,仅适用于包含匹配文件的目录src/*.app.src
或ebin/*.app
(参见rebar_app_utils:is_app_dir/1
);和rel_dir
模块,仅适用于包含reltool.config
or的目录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