node-test-runner Version Travis build Status AppVeyor Build status

Runs elm-test suites from Node.js


npm install -g elm-test


elm-test install foo/bar # Install the foo/bar package to "test-dependencies"
elm-test init            # `elm-test install elm-explorations/test` and create tests/Example.elm
elm-test                 # Run all exposed Test values in *.elm files in tests/
elm-test Foo.elm         # Run all exposed Test values in Foo.elm

Command Line Arguments


Like elm install, except it installs to the test-dependencies field of your project's elm.json file instead of dependencies.

elm-test install elm/regex


Runs elm-test install elm-explorations/test and then creates a tests/Example.elm example test to get you started.

Afterwards, you can run elm-test with no arguments to try out the example.


The --compiler flag can be used to use a version of the Elm compiler that has not been installed globally.

npm install elm
elm-test --compiler ./node_modules/.bin/elm


Allow running the tests with a predefined seed, rather than a randomly generated seed. This is especially helpful when trying to reproduce a failing fuzz-test.

elm-test --seed=12345


Define how many times a fuzzer should run. Defaults to 100

elm-test --fuzz=500


Specify which reporter to use for reporting your test results. Valid options are:

  • console (default): pretty, human readable formatted output
  • json: every event will be written to stdout as a json-encoded object
  • junit: junit-compatible xml will be written to stdout
elm-test --report=json


Displays the version of the current elm-test.

$ elm-test --version


Starts the runner in watch mode. Upon changing any currently watched source files (either in your your source-directories or in your tests' source-directories), your tests will get rerun.

elm-test --watch


Displays all the available options and commands.

Travis CI

If you want to run your tests on Travis CI, here's a good starter .travis.yml:

language: elm
  - 0.19.1