How to run a single test with Mocha?

前端 未结 12 1145
無奈伤痛
無奈伤痛 2020-12-04 05:46

I use Mocha to test my JavaScript stuff. My test file contains 5 tests. Is that possible to run a specific test (or set of tests) rather than all the tests in the file?

12条回答
  •  温柔的废话
    2020-12-04 05:57

    run single test –by filename–

    Actually, one can also run a single mocha test by filename (not just by „it()-string-grepping“) if you remove the glob pattern (e.g. ./test/**/*.spec.js) from your mocha.opts, respectively create a copy, without:

    node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js
    

    Here's my mocha.single.opts (it's only different in missing the aforementioned glob line)

    --require ./test/common.js
    --compilers js:babel-core/register
    --reporter list
    --recursive
    

    Background: While you can override the various switches from the opts-File (starting with --) you can't override the glob. That link also has some explanations.

    Hint: if node_modules/.bin/mocha confuses you, to use the local package mocha. You can also write just mocha, if you have it installed globally.


    And if you want the comforts of package.json: Still: remove the **/*-ish glob from your mocha.opts, insert them here, for the all-testing, leave them away for the single testing:

    "test": "mocha ./test/**/*.spec.js",
    "test-watch": "mocha -R list -w ./test/**/*.spec.js",
    "test-single": "mocha $1",
    "test-single-watch": "mocha -R list -w $1",
    

    usage:

    > npm run test
    

    respectively

    > npm run test-single -- test/ES6.self-test.spec.js 
    

    (mind the --!)

提交回复
热议问题