<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">I don't have a good answer to your exact question, but I do have two tips: `application:ensure_all_started/1` asks Erlang to figure out how to start all the dependencies in the correct order and handles the case of an application already having been started.</div><div class=""><br class=""></div><div class="">And `application:set_env/4` will allow you to programmatically set the Erlang env variables without a config file.</div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On May 31, 2018, at 11:24 AM, Code Wiget <<a href="mailto:codewiget95@gmail.com" class="">codewiget95@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">

<title class=""></title>

<div class="">
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;" class="">Hey everyone,
<div class=""><br class=""></div>
<div class="">How do you go about EUnit testing that requires the whole application to be running before the test ?</div>
<div class=""><br class=""></div>
<div class="">For example, my erlang application starts one pool of processes that connects to a database and another that connects to another server in our backend. To run any real tests, I’m going to need to have one or both of those systems up and running. The way that I’m doing is right now is below, and it is very cluge-y feeling:</div>
<div class=""><br class=""></div>
<div class="">
<div class="">ok = application:start(compiler),</div>
<div class="">ok = application:start(syntax_tools),</div>
<div class="">ok = application:start(goldrush),</div>
<div class="">ok = application:start(gproc),</div>
<div class="">ok = application:start(gen_logger),</div>
<div class="">ok = application:start(pooler),</div>
<div class="">ok = application:start(quickrand),</div>
<div class="">ok = application:start(re2),</div>
<div class="">ok = application:start(lz4),</div>
<div class="">ok = application:start(uuid),</div>
<div class="">ok = application:start(semver),</div>
<div class="">ok = application:start(snappy),</div>
<div class="">ok = application:start(cqerl),</div>
<div class="">ok = application:start(ecpool),</div>
<div class="">ok = application:start(esockd),</div>
<div class="">ok = application:start(lager_syslog),</div>
<div class="">ok = application:start(lager),</div>
</div>
<div class=""><br class=""></div>
<div class=""><br class=""></div>
<div class="">This system works because none of the above applications require any environment variables from a config file. So some of my other applications can’t run using this. Is there any way to have eunit run the test after starting the whole application? </div>
<div class=""><br class=""></div>
<div class="">Thanks!</div>
<div class=""><br class=""></div>
</div>
<div name="messageReplySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;" class=""><br class="">
<div class=""></div>
</div>
</div>

_______________________________________________<br class="">erlang-questions mailing list<br class=""><a href="mailto:erlang-questions@erlang.org" class="">erlang-questions@erlang.org</a><br class="">http://erlang.org/mailman/listinfo/erlang-questions<br class=""></div></blockquote></div><br class=""></body></html>