nightwatch.js:钩子之前和之后的全局

时间:2016-09-03 14:56:32

标签: nightwatch.js

以下是我的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。请让我知道我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

尝试下一个片段:

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(可能需要改变普通/定制零件的订单)