是否可以忽略单个测试的 beforeEach ?

Dan*_* M. 5 automation nightwatch.js

我希望测试用例 2 不调用 beforeEach,但测试用例 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 <
  }
};
Run Code Online (Sandbox Code Playgroud)

Raj*_*aju 3

欢迎来到 StackOverflow!

您无法避免为特定测试调用钩子,但您可以选择通过某些条件跳过其中的代码。当测试用例 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 <
  }
};
Run Code Online (Sandbox Code Playgroud)