2017-01-19 20 views
0

私はErlangアプリケーションをRESTサービスとして用意しています。私はrelxファイルを持っていると私は起動時に:私はサービスが開始され、私はlocalhost:80に私のサービスを打つことができる、ということを起動するとErlang;共通テストの開始時にアプリケーションを起動する

rebar3 release 

は、私が実行可能

./_build/default/rel/myapp/bin/myapp 

を取得します。

今、いくつかのAPI呼び出しをテストするためのテストスイートを作成しようとしています。私の共通テストinit_per_suite(Config)機能では、私は、私のアプリを起動するような何かしたい:

-module(apitest_SUITE). 
-include_lib("common_test/include/ct.hrl"). 
-export([all/0]). 
-export([test1/1, init_per_suite/1, end_per_suite/1]). 

all() -> [test1]. 

init_per_suite(Config) -> 
    %LAUNCH MY APP HERE!!! 
    %LAUNCHING ../../_build/default/rel/myapp/bin/myapp SEEMS WRONG TO ME 
    []. 

end_per_suite(Config) -> 
    %KILL MY APP HERE!!! 
    ok. 

test1(Config) -> 
    httpc:get("localhost:80"). %e.g. 

このcommon_testスイートからの私の解放を起動して、このテストを行うための適切な方法は何ですか?

ところで、私は

rebar3 ct 

答えて

1

OKを使用して私のテストを開始しています、私は(それが最善の方法であるかどうかわからない)これを行う方法を考え出し:

init_per_suite(Config) -> 
    {ok, _} = application:ensure_all_started(myapp), 
    []. 

%tests that hit localhost:port.. 

end_per_suite(Config) -> 
    ok = application:stop(myapp). 
関連する問題