No release in over a year
Simple Minitest reporter to indicate the result of test runs. After every test run, the reporter invokes the `minitest-flash` executable (created by you and to your liking) with either the argument "green" or "red" to reflect the result of the run.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

 Project Readme

Version Tests Code Climate GitHub Sponsors

Minitest::Flash

Simple Minitest reporter to indicate the result of test runs in as fancy a way you like. Here's how I like it: Flash the screen in green or red and play a short sound effect.

Thank you for supporting free and open-source software by sponsoring on GitHub or on Donorbox. Any gesture is appreciated, from a single Euro for a ☕️ cup of coffee to 🍹 early retirement.

Install

Add the following to the Gemfile or gems.rb of your Bundler powered Ruby project:

gem 'minitest-flash'

And then install the bundle:

bundle install

Finally, require this gem in your test_helper.rb or spec_helper.rb:

require 'minitest/flash'

Usage

After every test run, the reporter simply invokes the minitest-flash executable:

  • minitest-flash green if the run passed
  • minitest-flash red if the run failed or has errors

It's your job to create the minitest-flash executable to your liking and to place it somewhere in the PATH.

Other people might work on the same code and prefer not use minitest-flash. This is no problem as it won't do a thing unless a minitest-flash executable exists.

Example

I'm on macOS and like things to be as obvious and unobtrusive as possible: Flash the screen border either in green or red and optionally play a sound effect.

example

Here's what my /usr/local/bin/minitest-flash executable looks like:

#!/bin/zsh

typeset -A flash_args
flash_args=(
  [green]="0 200 0 8 2"
  [red]="200 0 0 8 2"
)

if [ -z "$MINITEST_NO_FLASH" ]; then
  border-flash ${=flash_args[$1]} &
fi

if [ -z "$MINITEST_NO_SOUND" ]; then
  mpg123 $0.d/$1.mp3 2>/dev/null &
fi

As you see, the sound or flash effects can easily be muted with:

export MINITEST_NO_FLASH=1
export MINITEST_NO_SOUND=1

For the above to work, you have to install the following additional tools and files.

border-flash

Follow the simple install instructions of border-flash.

mpg123

This is easiest installed through Homebrew:

brew install mpg123

The sound files are also necessary:

sudo mkdir /usr/local/bin/minitest-flash.d
sudo wget -P /usr/local/bin/minitest-flash.d/green.mp3 https://github.com/svoop/minitest-flash/raw/main/doc/green.mp3
sudo wget -O /usr/local/bin/minitest-flash.d/red.mp3 https://github.com/svoop/minitest-flash/raw/main/doc/red.mp3

Development

To install the development dependencies and then run the test suite:

bundle install
bundle exec rake    # run tests once
bundle exec guard   # run tests whenever files are modified

You're welcome to submit issues and contribute code by forking the project and submitting pull requests.

License

The gem is available as open source under the terms of the MIT License.