Можно ли игнорировать beforeEach для одного теста? - PullRequest
0 голосов
/ 01 мая 2020

Я хочу, чтобы тестовый пример 2 НЕ вызывал beaforeEach, но тестовые примеры 1 и 3 должны продолжать вызывать beforeEach, возможно ли это?

Я использую NightWatch. js

module.exports = {

  before(browser) {
    // > this will get run only ONCE, before all the tests <
  },
  beforeEach(browser) {
    // > this will get run before every test case <
  }

  tags: ['your', 'tags', 'go', 'here'],
  'Test Case No.1': (browser) => {
     // > this test does something here <
  },
  'Test Case No.2': (browser) => {
     // > this test does something else here <
  },
  'Test Case No.3': (browser) => {
     // > this test does something else here <
  },

  afterEach(browser) {
    // > this will get run after every test case <
  },
  after(browser) {
    // > this will get run ONCE, after all tests have run <
  }
};

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Вы можете изменить структуру ваших тестовых случаев, если у вас их еще мало. То, как я пишу свои тесты, весь «файл» - это 1 тестовый случай, который я называю после номера T C в Jira (то есть IW-xxxx. js), тогда каждый блок в этом T C является шаг. Это позволит вам отключить отдельные тестовые случаи (даже если вы можете просто добавить! Функцию (браузер), чтобы пропустить шаг), а также позволит вам иметь различные хуки для каждого T C. Вот о чем я говорю:

module.exports = {
   '@tags': ['nameOfTag'],

    before: function(browser){},

    beforeEach: function(browser){},

    after: function(browser){},

    afterEach: function(browser){},

    'Step 1': function(browser) {
         //code here for step 1
    },
    'Step 2': function(browser) {
        //code for step 2
    },
    'Make your verification/assertion': function(browser) {
        // assertion
    }
}
0 голосов
/ 01 мая 2020

Добро пожаловать в StackOverflow!

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

module.exports = {

  before(browser) {
    // > this will get run only ONCE, before all the tests <
  },
  beforeEach(browser) {
    if (browser.currentTest.name !== 'Test Case No.2') {
      // your code
    }
  }

  tags: ['your', 'tags', 'go', 'here'],
  'Test Case No.1': (browser) => {
    // > this test does something here <
  },
  'Test Case No.2': (browser) => {
    // > this test does something else here <
  },
  'Test Case No.3': (browser) => {
    // > this test does something else here <
  },

  afterEach(browser) {
    // > this will get run after every test case <
  },
  after(browser) {
    // > this will get run ONCE, after all tests have run <
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...