相关疑难解决方法(0)

使用需要相对路径的require

我们对Protractor进行了一系列相当大的端到端测试.我们遵循Page Object模式,这有助于我们保持测试的清洁和模块化.我们还有一套辅助功能,可以帮助我们遵循DRY原则.

问题:

单个规范可能需要多个页面对象和辅助模块.例如:

"use strict";

var helpers = require("./../../helpers/helpers.js");
var localStoragePage = require("./../../helpers/localStorage.js");
var sessionStoragePage = require("./../../helpers/sessionStorage.js");

var loginPage = require("./../../po/login.po.js");
var headerPage = require("./../../po/header.po.js");
var queuePage = require("./../../po/queue.po.js");

describe("Login functionality", function () {

    beforeEach(function () {
        browser.get("/#login");

        localStoragePage.clear();
    });

    // ...

});
Run Code Online (Sandbox Code Playgroud)

您可以看到我们在每个require语句中都有遍历目录:./../...这是因为我们有一个specs目录,我们将规范和多个目录保存在由测试中的应用程序功能分组.

问题:

在Protractor中处理相对路径问题的规范方法是什么?

换句话说,我们想避免遍历树,进入导入模块.从基础应用程序目录下来会更加清晰.


尝试和想法:

有一篇关于解决这个问题的好文章:Node.js的本地require()路径更好,但我不确定在使用Protractor开发测试时哪一个选项是推荐的.

我们也尝试使用require.main构造路径,但它指向node_modules/protractor目录而不是我们的应用程序目录.

javascript testing angularjs protractor

51
推荐指数
3
解决办法
2万
查看次数

标签 统计

angularjs ×1

javascript ×1

protractor ×1

testing ×1