Emacs helpers for running mocha tests. It lets you test an entire project, a particular file, or a particular test in that file.
The package can be installed via MELPA. The package name is mocha.
Everything is set up right now to be configured via customize or per project in a .dir-locals.el
file. You can find all options by looking at the mocha
group in the customize interface. Below is an example configuration:
((nil . (
(mocha-which-node . "/Users/ajs/.nvm/versions/node/v4.2.2/bin/node")
(mocha-command . "node_modules/.bin/mocha")
(mocha-environment-variables . "NODE_ENV=test")
(mocha-options . "--recursive --reporter dot -t 5000")
(mocha-project-test-directory . "test")
(mocha-reporter . "spec")
)))
In order to run tests there are three functions exposed:
mocha-test-project
will run all the tests in your project.mocha-test-file
will test just the current file you are visiting.mocha-test-at-point
will try and semantically find the nearest enclosingit
ordescribe
from your cursor, and just run that.
You can run any of these functions via M-x
, or assign them to hotkeys.
Stack traces for failing tests have clickable links to the file and line that failed.
mocha-test-at-point
uses js2-mode to find the nearest describe
or it
and extract the description string from it. As such, it only works in JavaScript files that have js2-mode set as the major mode.
Each of the test functions has a debug analog: mocha-debug-project
, mocha-debug-file
, and mocha-debug-at-point
. Using these functions depends on having realgud installed and loaded.
The provided debugging buffer takes the same commands as the standard node CLI debugger. Some useful ones are:
s
to step ino
to step outn
to step overc
to continue executionrepl
use interactive REPL at point
Additionally C-c C-c
will send a BREAK signal, and M-p
will cycle through previous inputs.
Be sure to!
Install Cask if you haven't already.
Install the dependencies:
$ make install
Run the tests with:
$ make test