aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMickael Remond <mremond@process-one.net>2016-04-01 11:11:42 +0200
committerMickael Remond <mremond@process-one.net>2016-04-01 11:11:42 +0200
commita8f92ae767eee39100bec38ff32fe39d017dabcb (patch)
tree28e8451c9cd458c7e2af585473f17d79a3326598
parentPort mod_admin_extra test to work with new API (diff)
Add logger macro to help troubleshooting Elixir tests
-rw-r--r--include/logger.hrl7
-rw-r--r--test/README-quicktest.md33
2 files changed, 40 insertions, 0 deletions
diff --git a/include/logger.hrl b/include/logger.hrl
index 18dc7041c..df0776863 100644
--- a/include/logger.hrl
+++ b/include/logger.hrl
@@ -34,3 +34,10 @@
-define(CRITICAL_MSG(Format, Args),
lager:critical(Format, Args)).
+
+%% Use only when trying to troubleshoot test problem with ExUnit
+-define(EXUNIT_LOG(Format, Args),
+ case lists:keyfind(logger, 1, application:loaded_applications()) of
+ false -> ok;
+ _ -> 'Elixir.Logger':bare_log(error, io_lib:format(Format, Args), [?MODULE])
+ end).
diff --git a/test/README-quicktest.md b/test/README-quicktest.md
new file mode 100644
index 000000000..43c71e86b
--- /dev/null
+++ b/test/README-quicktest.md
@@ -0,0 +1,33 @@
+# Elixir unit tests
+
+## Running Elixir unit tests
+
+You can run Elixir unit tests with command:
+
+make quicktest
+
+You need to have ejabberd compile with Elixir and tools enabled.
+
+## Troubleshooting test
+
+To help with troubleshooting Elixir tests, we have added a special macro in ejabberd `logger.hrl` include file: ?EXUNIT_LOG
+
+To use this, in test file:
+
+1. in `setup_all, add:
+
+ ```
+ Application.start(:logger)
+ ```
+
+2. Enable log capture for the test you want to analyse by adding
+ `capture_log` tag before test implementation:
+
+ ```
+ @tag capture_log: true
+ ```
+
+In the ejabberd code, if `logger.hrl` is included, you can code adds a
+EXUNIT_LOG macro:
+
+ ?EXUNIT_LOG("My debug log:~p ~p", [Arg1, Arg2])