diff --git a/.gitignore b/.gitignore
index f3682eba70ade2d1b75e33984233e864795c8b08..7d1e7398751a96ddfe87e044e5799228bde781a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ _build
 .rebar3
 rebar3
 rebar.lock
+erl_crash.dump  
diff --git a/test/eunit_ide.erl b/test/eunit_ide.erl
new file mode 100644
index 0000000000000000000000000000000000000000..9a522f0eab943bf80f947d38abc25360740e3918
--- /dev/null
+++ b/test/eunit_ide.erl
@@ -0,0 +1,18 @@
+-module(eunit_ide).
+
+-export([test/1, test/2]).
+
+-define(INFINITE_TIMOUT, 31536000). %% 365*24*60*60, a year in seconds
+
+test(Tests) ->
+    test(Tests, [verbose]).
+
+test(Tests, Options) ->
+    case lists:keytake(timeout, 1, Options) of
+        {value, {timeout, infinite}, NewOptions} ->
+            eunit:test({timeout, ?INFINITE_TIMOUT, Tests}, NewOptions);
+        {value, {timeout, Timeout}, NewOptions} when is_integer(Timeout) ->
+            eunit:test({timeout, Timeout, Tests}, NewOptions);
+        false ->
+            eunit:test(Tests, Options)
+    end.