量角器测试:有人可以告诉我我在使用 Require 时做错了什么吗?
Protractor testing: Can someone tell me what I'm doing wrong with Require?
我正在尝试将 Protractor 测试分解为可管理的文件。
有人可以告诉我我在使用 Require 时做错了什么吗?
这是一个例子:
变量:C:/tests/variables/signInVariables.js
var emailAddress = element(by.model('loginData.userName'));
var password = element(by.model('loginData.password'));
var signInButton = element(by.css('[data-auto-field="SignIn"]'));
函数:C:/tests/functions/signInFunctions.js
var signInVariables = require ('../variables/signInVariables.js');
function signIn(a, b) {
browser.get ('https://www.website.com');
emailAddress.sendKeys(a);
password.sendKeys(b);
signInButton.click();
};
测试:C:/tests/protractor/conf.js
var signInFunctions = require ('../functions/signInFunctions.js');
it(' should sign in ', function() {
signIn("someusername", "somepassword");
});
我运行它,这就是我得到的:
Failed: signIn is not defined
我相信这是一个简单的修复。我真的不知道我在做什么。
require
与您期望的不太一样。它不会简单地按照您使用它的方式内联所需的文件。 require
正在寻找 JSON 文件或 module.exports
对象。这是一个简单的例子。
require_me.js
module.exports = {a: "foo", b: "bar"};
index.js
var imports = require('require_me.js');
console.log(imports); // Will produce {a: "foo", b: "bar"}
你可以阅读更多关于需求和模块的内容here,你的错误是
signInVariables 不是模块,没有 exports
对象可以使用。
你可以这样做:
exports.emailAddress = element(by.model('loginData.userName'));
exports.password = element(by.model('loginData.password'));
exports.signInButton = element(by.css('[data-auto-field="SignIn"]'));
或者将 signInVariables 定义为一个模块并将其作为一个整体导出。
希望我有所帮助。
我正在尝试将 Protractor 测试分解为可管理的文件。 有人可以告诉我我在使用 Require 时做错了什么吗?
这是一个例子:
变量:C:/tests/variables/signInVariables.js
var emailAddress = element(by.model('loginData.userName'));
var password = element(by.model('loginData.password'));
var signInButton = element(by.css('[data-auto-field="SignIn"]'));
函数:C:/tests/functions/signInFunctions.js
var signInVariables = require ('../variables/signInVariables.js');
function signIn(a, b) {
browser.get ('https://www.website.com');
emailAddress.sendKeys(a);
password.sendKeys(b);
signInButton.click();
};
测试:C:/tests/protractor/conf.js
var signInFunctions = require ('../functions/signInFunctions.js');
it(' should sign in ', function() {
signIn("someusername", "somepassword");
});
我运行它,这就是我得到的:
Failed: signIn is not defined
我相信这是一个简单的修复。我真的不知道我在做什么。
require
与您期望的不太一样。它不会简单地按照您使用它的方式内联所需的文件。 require
正在寻找 JSON 文件或 module.exports
对象。这是一个简单的例子。
require_me.js
module.exports = {a: "foo", b: "bar"};
index.js
var imports = require('require_me.js');
console.log(imports); // Will produce {a: "foo", b: "bar"}
你可以阅读更多关于需求和模块的内容here,你的错误是
signInVariables 不是模块,没有 exports
对象可以使用。
你可以这样做:
exports.emailAddress = element(by.model('loginData.userName'));
exports.password = element(by.model('loginData.password'));
exports.signInButton = element(by.css('[data-auto-field="SignIn"]'));
或者将 signInVariables 定义为一个模块并将其作为一个整体导出。 希望我有所帮助。