我遇到了通用测试以及我指定要测试的应用程序的配置方式的问题。我有几个测试套件集合,其中每个测试套件集合都有一个ct_hook模块来设置某些内容。
我配置要测试的应用的方法是先致电application:load/1
,然后再致电application:set_env/3
,然后再致电application:ensure_all_started/1
。
对于测试套件的单个(集合),这很好。但是,当我运行rebar3 ct
时,它(自然)会连续运行多个测试套件,并且如果我需要配置将在以后的运行中使用的应用程序,那么调用{ {1}}(如果该应用程序已经在较早套件的ct_hook中间接加载(作为依赖项-甚至是依赖项的依赖项):
application:set_env/3
in init/2
:
first_ct_hook
% loads app_a, but also its dependency app_b and *app_b's* dependency app_z:
application:load(app_a),
application:set_env(app_a, database, my_db_config),
% …
% great success!
中的init/2
:
second_ct_hook
执行此操作的正确方法是什么?