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