nightwatch.js: 全局前后挂钩

nightwatch.js: global before and after hooks

下面是我的 globals.js 它位于 root/lib 目录中。

module.exports = {

    beforeEach: function (browser) {

        browser.init();
        browser.login('admin');
    },

    afterEach: function (browser) {
        browser.logout();
        browser.end();
    },
}

下面是我的测试文件,位于root/test

var util = require('../../lib/globals.js');

module.exports = {



    'user login': function (browser)
    {


        // verify login, then logout
        headerPage.verifyAuthentication();

        browser.logout();
        browser.end();

    }

};

但根本不测试运行宁beforeEachafterEach。我想要这两个 运行 每次测试前后,没有将这些函数放在每个测试文件中,因为会有超过 100 个测试文件。

根据客户的指示,我现在无法使用 mochagrunt。请让我知道我在这里缺少什么?

尝试下一个片段:

globals.js

module.exports = function(options) {
  return Object.assign({}, options || {}, {
    beforeEach(browser) {
      // common
      browser.init();
      browser.login('admin');
      // custom
      if (options.beforeEach) {
        options.beforeEach.apply(this, arguments);
      }
    },

    afterEach() {
      // custom
      if (options.afterEach) {
        options.afterEach.apply(this, arguments);
      }
      // common
      browser.logout();
      browser.end();
    }
  });
}

测试文件

var module = require('../../lib/globals.js');
module.exports = module({
    'user login': function (browser) {
        // verify login, then logout
        headerPage.verifyAuthentication();

        browser.logout();
        browser.end();
    }
});

我没有 运行 该代码(我们使用修改后的版本),但想法是——从全局模块和具体测试中收集所有 beforeEach/afterEach (可能您需要更改 common/custom 个零件的顺序 )