代码之家  ›  专栏  ›  技术社区  ›  beta Rob

在公共测试套件中构建应用程序配置

  •  0
  • beta Rob  · 技术社区  · 7 年前

    我遇到了一个公共测试和我为我测试的应用程序指定配置的方式的问题。我有几个测试套件集合,其中每个测试套件集合都有一个ct\u hook模块来设置一些东西。

    application:load/1 application:set_env/3 在我打电话之前 application:ensure_all_started/1 对于单个(集合)的测试套件来说,这非常有效。但是,当我跑的时候 rebar3 ct ,它(自然地)连续运行多个测试套件,如果我需要配置一个我将在以后运行时使用的应用程序,那么调用它就太迟了 美联社plication:set_env/3

    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!
    

    初始化/2 在里面 second_ct_hook :

    application:load(app_b), % loads app_b (its dependency app_z is already loaded)
    application:set_env(app_a, database, my_db_config),
    application:set_env(app_z, important, my_important_config), % oh no! too late!
    

    0 回复  |  直到 7 年前