[ANN] test-loop 9.3.0

test-loop - Continuous testing for Ruby with fork/eval
9.3.0 GitHub - sunaku/test-loop: MOVED TO sunaku/testr

What is it?

test-loop is a fast continuous testing tool for Ruby that automatically
detects and tests changes in your application in an efficient manner:

  1. Absorbs the test execution overhead into the main Ruby process.
  2. Forks to run your test files without overhead and in parallel.
  3. Avoids running unchanged test blocks inside changed test files.

What is new?

New features:

  • Resume currently running tests–as well as those currently needing to
    be run–after reabsorbing test execution overhead. (Brian B.)

  • Stop currently running tests (and wait for them to finish) before
    reabsorbing overhead. This greatly improves responsiveness because
    worker processes are no longer there to compete with the new master
    process for system resources.

  • Notify user when running all tests and when exiting. (Brian B.)

  • Notify user when overhead changes instead of when restarting the loop.

  • Use ANSI clear line command to erase control-key combinations
    outputted by shells such as BASH and ZSH in test-loop’s output.
    (Brian B.)

Bug fixes:

  • @last_ran_at was being set during every iteration of the loop. This
    is problematic when Ruby’s Time.now is more precise than your
    filesystem’s modification timestamp. For example, in the ext3
    filesystem under Linux, file modification timestamps have a precision
    of 1 second. (Brian B.)

  • Exit gently on SIGINT by sending SIGTERM to all worker processes and
    then running waitall(), instead of sending SIGKILL to the entire
    process group. As a result, test-loop no longer exits with a non-zero
    status upon SIGINT.

  • Remove ‘ansi’ gem dependency. (Brian B.)


  • Add tip on deleting logs for passing tests. (Brian B.)

  • Add tip on monitoring test processes with watch(1) in README.