How to programmatically skip a test in mocha?
Solution 1:
You can skip tests by placing an x in front of the describe or it block, or placing a .skip
after it.
xit('should work', function (done) {});
describe.skip('features', function() {});
You can also run a single test by placing a .only
on the test. for instance
describe('feature 1', function() {});
describe.only('feature 2', function() {});
describe('feature 3', function() {});
Only the feature 2 block would run in this case.
There doesn't appear to be a way to programmatically skip tests, but you could just do some sort of check in a beforeEach
statement and only run the test if the flag was set.
beforeEach(function(){
if (wrongEnvironment){
runTest = false
}
}
describe('feature', function(){
if(runTest){
it('should work', function(){
// Test would not run or show up if runTest was false,
}
}
}
Solution 2:
Use Mocha's skip()
function
It can be used to either statically to disable a test or entire suite, or dynamically skip it at runtime.
Here's an example runtime usage:
it('should only test in the correct environment', function() {
if (/* check test environment */) {
// make assertions
} else {
this.skip();
}
});