anchor.diff:  	lists:foldl(fun(Node, Path) -> " -pa " ++ Node ++ Path end,
   		[], code:get_path()).
   
  -%% stop_deps/0
  +%% stop_deps/1
   %% ====================================================================
   %% @doc This function clears after the test.
  --spec stop_deps() -> ok.
  +-spec stop_deps(Deps :: list(atom)) -> list(Result::term()).
   %% ====================================================================
  -stop_deps() ->
  -	application:stop(ibrowse),
  -	application:stop(n2o),
  -	application:stop(cowboy),
  -	application:stop(ranch),
  -	application:stop(crypto),
  -	application:stop(mimetypes),
  -	application:stop(ssl),
  -	application:stop(erlydtl),
  -	application:stop(gproc),
  -	application:stop(lager),
  -	application:stop(sasl),
  -	application:unload(globalregistry).
  +stop_deps([]) ->
  +    [];
  +stop_deps([FirstDep | Rest]) ->
  +	[application:stop(FirstDep) | stop_deps(Rest)].
  +%% 	application:unload(globalregistry).
   
  -%% start_deps/0
  +%% start_deps/1
   %% ====================================================================
   %% @doc This function sets environment for application.
  --spec start_deps() -> ok.
  +-spec start_deps(Deps :: list(atom)) -> list(Result::term()).
   %% ====================================================================
  -start_deps() ->
  -	application:start(sasl),
  -	lager:start(),
  -	ssl:start(),
  -	application:start(erlydtl),
  -	application:start(mimetypes),
  -	application:start(ranch),
  -	application:start(crypto),
  -	application:start(cowboy),
  -	application:start(gproc),
  -	application:start(n2o),
  -	application:start(ibrowse),
  -	application:load(globalregistry).
  +start_deps([]) ->
  +    [];
  +start_deps([lager | Rest]) ->
  +    [lager:start() | start_deps(Rest)];
  +start_deps([ssl | Rest]) ->
  +    [ssl:start() | start_deps(Rest)];
  +start_deps([FirstDep|Rest]) ->
  +	[application:start(FirstDep) | start_deps(Rest)].
  +%% 	application:load(globalregistry).
   
   %% set_env_vars/1
   %% ====================================================================
  
positive.code: -include("assertions.hrl").
  
  %% API
  -export([start_globalregistry_node/3,start_globalregistry_node/4,stop_globalregistry_node/1]).
  -export([set_env_vars/1,start_deps/0,stop_deps/0]).
  
  
  %% start_globalregistry_node/3
  %% ====================================================================
  %% @doc Starts new node with globalregistry, with silent mode
  -spec start_globalregistry_node(NodeName :: atom(), Host :: atom(), EnvVars :: list(Env)) -> node() | no_return() when
  	Env :: {Name,Value},
  	Name :: atom(),
  	Value :: term().
  %% ====================================================================
  start_globalregistry_node(NodeName,Host,EnvVars) ->
  	start_globalregistry_node(NodeName,Host,EnvVars,false).
  
  %% start_globalregistry_node/4
  %% ====================================================================
  %% @doc Starts new node with globalregistry.
  -spec start_globalregistry_node(NodeName :: atom(), Host :: atom(),EnvVars :: list(Env), Verbose :: boolean()) -> Result when
  	Env :: {Name,Value},
  	Name :: atom(),
  	Value :: term(),
  	Result :: node() | no_return().
  %% ====================================================================
  start_globalregistry_node(NodeName,Host,EnvVars,Verbose) ->
  	% Prepare opts
  	CodePathOpt = make_code_path(),
  	VerboseOpt = case Verbose of
  
negative.code: 	CookieOpt = " -setcookie "++atom_to_list(erlang:get_cookie())++" ",
  
  	% Start node
  	stop_test_node(?NODE(Host,NodeName)),
  	{ok,Node} = slave:start(Host, NodeName,CodePathOpt++VerboseOpt++CookieOpt),
  
  	% Prepare environment
  	rpc:call(Node,application,start,[ctool]),
  	rpc:call(Node,test_node_starter,start_deps,[]),
  	rpc:call(Node,application,load,[globalregistry]),
  	rpc:call(Node,test_node_starter,set_env_vars,[EnvVars]),
  	?assertMatch(ok,rpc:call(Node,application,start,[globalregistry])),
  	Node.
  