Skip to content

scottaj/mocha.el

Folders and files

Image for: Folders and files
NameName
Last commit message
Last commit date

Latest commit

Image for: Latest commit
 

History

Image for: History
125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image for: Repository files navigation

Maintainer Needed

I no longer use emacs outside of magit, and don't use mocha day-to-day either, so I don't have the resources or setup to maintain and test this project. If you would like to own/maintain it let me know.

mocha.el

Emacs helpers for running mocha tests. It lets you test an entire project, a particular file, or a particular test in that file.

Contents

Image for: Contents

Installation

Image for: Installation

The package can be installed via MELPA. The package name is mocha.

Configuration

Image for: Configuration

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")
            )))

Running tests

Image for: Running tests

In order to run tests there are three functions exposed:

  1. mocha-test-project will run all the tests in your project.
  2. mocha-test-file will test just the current file you are visiting.
  3. mocha-test-at-point will try and semantically find the nearest enclosing it or describe 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.

Running Test at Point

Image for: Running Test at Point

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.

Mocha includes an imenu function that builds an index matching the describe and it tree. You can enable this index function by setting imenu-create-index-function to mocha-make-imenu-alist or using (mocha-toggle-imenu-function).

Debugging Tests

Image for: Debugging Tests

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 a javascript debugger installed and loaded. The debuggers with built-in support are:

The realgud debugging buffer takes the same commands as the standard node CLI debugger. Some useful ones are:

  • s to step in
  • o to step out
  • n to step over
  • c to continue execution
  • repl use interactive REPL at point

Additionally C-c C-c will send a BREAK signal, and M-p will cycle through previous inputs.

Contribution

Image for: Contribution

Be sure to!

Install Cask if you haven't already.

Install the dependencies:

$ make install

Run the tests with:

$ make test

About

Image for: About

Emacs mode for running mocha tests

Topics

Resources

License

Stars

Watchers

Forks

Packages

Image for: Packages 0
No packages published

Contributors 10

Image for: Contributors 10