2015-05-11 49 views
3

我爲我的應用程序創建了一個配置文件,該文件由多個子應用程序組成,其中每個子應用程序都有自己的Common Test suites目錄。對於構建和測試我使用的螺紋鋼,我的目錄結構看起來像這樣將Erlang配置文件(對於多個應用程序)用鋼筋進行通用測試

. 
├── 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一切工作正常。我已將{ct_extra_params, "-erl_args -config rpm"}.添加到我的rebar.config,但是當我運行rebar ct時,調用application:get_env/1,2時會發生錯誤。

如果不可能用鋼筋做到這一點,如果有人能告訴我如何在那裏完成,也可以使用make。我知道我可以按照Erlang -- External Configuration Date中的描述將配置加載到通用測試中,但是我認爲如果我已經有apps.config會更容易一些。

更新:ct_run -dir apps/app1/test -pa deps/*/ebin -pa apps/*/ebin -erl_args -config rpm也按預期工作。我想問題在於,當運行每個應用程序的測試時,鋼筋會更改cwd,因此-config rpm選項不指向現有文件。無論如何,我無法找到解決方法。

回答

0

我現在創建了一個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運行測試。無論如何,如果有人知道我可以用螺紋鋼做這個,請回答!

+0

我們放棄了使用螺紋鋼進行CT測試,fwiw。 –

相關問題