Skip to content

navinpeiris/ex_unit_notifier

Repository files navigation

ExUnit Notifier

Build Status Hex version Hex docs Hex downloads License Last Updated

screenshot

Show desktop notifications for ExUnit runs. Works very well with automatic test runners such as mix-test.watch. (Yes, TDD is awesome!)

Currently notifications on OS X and Linux are supported.

Installation

First, add ExUnitNotifier to your mix.exs dependencies:

def deps do
  [
    {:ex_unit_notifier, "~> 1.3", only: :test}
  ]
end

Then, update your dependencies:

$ mix deps.get

For macOS

Follow installation instruction of terminal-notifier if you need to install a particular version.

Otherwise, install current version via Homebrew:

$ brew install terminal-notifier

For GNU/Linux

Install notify-send:

$ sudo apt install libnotify-bin

Usage

Add ExUnitNotifier to your ExUnit configuration in test/test_helper.exs file.

ExUnit.configure formatters: [ExUnit.CLIFormatter, ExUnitNotifier]
ExUnit.start

Now run mix test and you'll see notifications popping up :)

Notification Types

Notifications will be sent from the first available notifier that is deemed available in the order specified below:

  • terminal-notifier (ExUnitNotifier.Notifiers.TerminalNotifier)
  • notify-send (ExUnitNotifier.Notifiers.NotifySend)
  • tmux (ExUnitNotifier.Notifiers.TmuxNotifier)
  • Terminal Title if non of the above match (ExUnitNotifier.Notifiers.TerminalTitle)

To force a specific type of notifier to be used, specify the notifier using the following configuration:

config :ex_unit_notifier, notifier: ExUnitNotifier.Notifiers.TerminalNotifier

You can use one of the available notifiers found in lib/ex_unit_notifier/notifiers, or you can write your own.

Notification Options

For notify-send users, it is possible to clear the notifications from notifications center history using the following configuration, defaults to false:

config :ex_unit_notifier, clear_history: true

Copyright and License

Copyright (c) 2016 Navin Peiris

Source code is released under the MIT license.