Получить beforeEach для запуска только для тестов в файле, в котором он находится - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть два тестовых файла mocha, каждый со своей функцией beforeEach.BeforeEach из каждого файла запускается для всех тестовых случаев.Лучше объяснить с помощью кода:

user.test.js:

beforeEach((done) => {
  console.log('user before each');
  done();
});
describe('Running user tests', () => {

  it('user test #1',  () => {
    console.log('in user test 1');
  });

  it('user test #2',  () => {
    console.log('in user test 2');
  });

});

todo.test.js

beforeEach((done) => {
  console.log('todo before each');
  done();
});

describe('Running todo tests', () => {

  it('todo test #1',  (done) => {
    console.log('in todo test 1');
    done();
  });

  it('todo test #2',  (done) => {
    console.log('in todo test 2');
    done();
  });

});

package.json

{
  "name": "before-each",
  "version": "1.0.0",
  "description": "",
  "main": "todo.test.js",
  "scripts": {
    "test": "mocha **/*.test.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "mocha": "^5.2.0"
  }
}

вывод при запуске: npm test

  Running todo tests
todo before each
user before each
in todo test 1
    ✓ todo test #1
todo before each
user before each
in todo test 2
    ✓ todo test #2

  Running user tests
todo before each
user before each
in user test 1
    ✓ user test #1
todo before each
user before each
in user test 2
    ✓ user test #2


  4 passing (7ms)

Есть ли способ получить beforeEach () в файле todo для запуска только для тестов в файле todo и beforeEach () в файле пользователязапускать только для пользовательских тестов?Я пришел из Java / JUnit фона, и это ведет себя совсем по-другому.

Спасибо!

1 Ответ

0 голосов
/ 08 ноября 2018

Переместите beforeEach внутрь describe.Это правильное место для размещения beforeEach, принадлежащего определенному describe:

describe('Running user tests', () => {
  beforeEach((done) => {
    console.log('user before each');
    done();
  });

  it('user test #1',  () => {
    console.log('in user test 1');
  });

  it('user test #2',  () => {
    console.log('in user test 2');
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...