Динамически пропускать тесты JavaScript во время выполнения с помощью Mocha

Mocha - это популярный фреймворк для тестирования JavaScript для Node.js и браузера.
В отличие от других тестовых фреймворков, которые я использовал раньше, он действительно простой и быстрый.

Одним из наиболее распространенных действий при написании или отладке тестов, независимо от используемой платформы, является возможность игнорировать некоторые тесты.
Это особенно верно, если вы практикуете TDD или склонны сначала составлять список заполнителей для тестов, которые вы планируете написать.

Эта инклюзивная возможность доступна в Mocha путем добавления .skip() к набору или к конкретным тестовым примерам. Пропущенные тесты будут помечены как ожидающие в результатах тестирования.

использование

describe.skip('Filter', function() { 
  // all suite will be skipped 
});
describe('Filter', function() {
  it.skip('should filter values lower than 10', function() {
    // this test will not run
  });
  
  it('should filter undefined elements', function() {
    // this test will run
  });
});

Другой быстрый вариант - добавить x к it или describe:

xit('should filter all non-primary numbers', function() {
  // this test will be skipped
});

Программный пропуск тестов во время выполнения

В некоторых случаях вам может потребоваться динамически пропускать тесты.
Примером может служить ситуация, когда тест зависит от среды выполнения.

В этом случае используйте this.skip()

it('should only test in the development environment', function() {
  if (process.env.NODE_ENV === 'dev') {
    // assertions
  } else {
    this.skip();
  }
});

Не выполняйте никаких действий после вызова this.skip() , так как вызов прервет тест.

Вы можете пропустить все тесты в блоке описания, включая все блоки it, beforeEach / afterEach и describe в наборе, используя this.skip() в ловушке before

before(function() {
  if (process.env.NODE_ENV === 'dev') {
    // tests setup
  } else {
    this.skip();
  }
});

Совет - Эксклюзивные тесты

Вы можете запустить только определенный набор или тестовый пример, добавив .only() к функции.

describe.only('Filter', function() {
  // all tests in the suite will run
}); 
describe('Filter', function() {
  it.only('should filter primary numbers', function() {
    // this test will run
  });
it('should filter odd numbers', function() {
    // this test will not run
  });
});

Установка мокко

$ npm install -g mocha

Первоначально опубликовано на https://danielkorn.io 12 июля 2019 г.