【发布时间】:2015-07-18 14:03:16
【问题描述】:
我们在 Protractor 上进行了相当多的端到端测试。我们遵循页面对象模式,这有助于我们保持测试的清洁和模块化。我们还有一组帮助函数可以帮助我们关注DRY principle。
问题:
单个规范可能需要多个页面对象和帮助模块。例如:
"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();
});
// ...
});
您可以看到我们在每个 require 语句中都有该目录遍历:./../..。这是因为我们有一个 specs 目录,我们将规范和多个目录保存在其中,这些目录按正在测试的应用程序功能分组。
问题:
在量角器中解决相对路径问题的规范方法是什么?
换句话说,我们希望避免遍历树,向上导入模块。而是从基本应用程序目录中向下移动会更干净。
尝试和想法:
有一篇关于解决这个问题的好文章:Better local require() paths for Node.js,但我不确定在使用 Protractor 开发测试时推荐哪个选项。
我们也尝试使用require.main 来构造路径,但它指向node_modules/protractor 目录而不是我们的应用程序目录。
【问题讨论】:
标签: javascript angularjs testing protractor