gpt4 book ai didi

configuration - 将 Erlang 配置文件(用于多个应用程序)应用于 Common Test with rebar

转载 作者:行者123 更新时间:2023-12-04 05:34:37 24 4
gpt4 key购买 nike

我已经按照 Erlang -- config 中的描述创建了一个配置文件对于我的应用程序,它由多个子应用程序组成,每个子应用程序都有自己的 Common Test suites 目录。对于构建和测试,我使用 rebar,我的目录结构如下所示

.
├── apps
│   ├── app1
│   │   ├── ebin
│   │   └── src
│   ├── app2
│   │   ├── ebin
│   │   ├── logs
│   │   ├── rebar.config
│   │   ├── src
│   │   └── test
│   ├── ...
├── deps
├── rebar.config
├── apps.config

其中 apps.config 包含所有应用程序的配置。当我使用 erl -pa deps/*/ebin -pa apps/*/ebin -config apps 启动我的 VM 时,一切正常。我已将 {ct_extra_params, "-erl_args -config rpm"}. 添加到我的 rebar.config 但是当我运行 rebar ct 时出现错误在调用 application:get_env/1,2 时发生。

如果不能用 rebar 做到这一点,如果有人能告诉我如何在那里完成它,也可以使用 make 代替。我知道我可以按照 Erlang -- External Configuration Date 中所述以某种方式将配置加载到 Common Test 中但我认为如果我已经有了 apps.config,会有更简单的方法。

更新 ct_run -dir apps/app1/test -pa deps/*/ebin -pa apps/*/ebin -erl_args -config rpm 也按预期工作.我想问题是 rebar 在为每个应用程序运行测试时更改了 cwd,因此 -config rpm 选项不指向现有文件。无论如何,我找不到解决方法。

最佳答案

我现在创建了一个 Makefile 来解决我的问题:

SUBDIRS = ./apps/app1 \
./apps/app2 \
./apps/app3

all: compile

compile:
rebar compile

test:
for dir in $(SUBDIRS); do \
mkdir -p $$dir/logs; \
ct_run -dir $$dir -logdir $$dir/logs -pa deps/*/ebin -pa apps/*/ebin -erl_args -config rpm; \
done

.PHONY: all compile test

现在我可以使用 make test 运行测试了。无论如何,如果有人知道我如何用钢筋做到这一点,请回答!

关于configuration - 将 Erlang 配置文件(用于多个应用程序)应用于 Common Test with rebar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30161772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com