adrigzr / neotest-mocha

Neotest runner for Mocha test framework
9 stars 9 forks source link

neotest-mocha

build

This plugin provides a Mocha adapter for the Neotest framework.

It is currently a work in progress. It will be transferred to the official neotest organisation (once it's been created).

Requirements

Installation

Using packer:

use({
  'nvim-neotest/neotest',
  requires = {
    ...,
    'adrigzr/neotest-mocha',
  }
  config = function()
    require('neotest').setup({
      ...,
      adapters = {
        require('neotest-mocha')({
          command = "npm test --",
          command_args = function(context)
            -- The context contains:
            --   results_path: The file that json results are written to
            --   test_name_pattern: The generated pattern for the test
            --   path: The path to the test file
            --
            -- It should return a string array of arguments
            --
            -- Not specifying 'command_args' will use the defaults below
            return {
                "--full-trace",
                "--reporter=json",
                "--reporter-options=output=" .. context.results_path,
                "--grep=" .. context.test_name_pattern,
                context.path,
            }
          end,
          env = { CI = true },
          cwd = function(path)
            return vim.fn.getcwd()
          end,
        }),
      }
    })
  end
})

Usage

See neotest's documentation for more information on how to run tests.

:gift: Contributing

Please raise a PR if you are interested in adding new functionality or fixing any bugs. When submitting a bug, please include an example spec that can be tested.

To trigger the tests for the adapter, run:

./scripts/test

Bug Reports

Please file any bug reports and I might take a look if time permits otherwise please submit a PR, this plugin is intended to be by the community for the community.

Inspiration

Thanks to haydenmeade and all the contributors from neotest-jest for doing the hard work.