我编写了一个包含许多函数的文件,我希望在各种E2E测试中使用这些函数。我一直试图测试这个,并找到了一些解决方案,但没有一个对我有用。
事情就是这样。
在我的TestingFunc.js文件中,我创建了以下内容:
var TestingFunc = function() {
this.login = function(Url) {
browser.ignoreSynchronization = true;
browser.get(Url);
browser.wait(EC.elementToBeClickable(element(by.eeHook('login',null,null))), 300000);
element(by.eeHook('login', null, null)).click();
element(by.eeHook('authenticationEmailField',null,null)).sendKeys(logins.International);
element(by.name('password')).sendKeys(logins.password);
element(by.eeHook('authenticationLoginButton',null,null)).click();
browser.wait(EC.elementToBeClickable(paymentFlow), 100000);
paymentFlow.click();
browser.wait(EC.elementToBeClickable(depositAmount), 7000);
};
};
我试图在下面阅读它:
var url = 'http://master.mrgreen.avengers.zone/en-US/casino';
var TestingFunc = require("C:/Users/davbor.3DB/MrGreen Google Drive/LetsTest/TestingFunc.js");
describe("The security application", function () {
var test = new TestingFunc();
it("will login to the page", function () {
test.login(url);
});
});
然而,每次我运行它时,我都会收到错误:
Failures:
1) The security application encountered a declaration exception
Message:
TypeError: TestingFunc is not a constructor
Stack:
TypeError: TestingFunc is not a constructor
at Suite.<anonymous> (C:\Users\davbor.3DB\MrGreen Google Drive\LetsTest\Testing.js:6:17)
我不知道我错过了什么,因为我甚至要求内部开发人员查看它没有成功。
答案 0 :(得分:3)
var TestingFunc = require(“C:/Users/davbor.3DB/MrGreen Google Drive / LetsTest / TestingFunc.js”);
1)你不应该使用完整路径。使用此文件的相对路径。
在您的Testing.js中,require应如下所示:
var TestingFunc = require("./TestingFunc.js");
2)你应该'导出'你的功能:
var TestingFunc = function() {
this.login = function(Url) {
browser.ignoreSynchronization = true;
browser.get(Url);
browser.wait(EC.elementToBeClickable(element(by.eeHook('login',null,null))), 300000);
element(by.eeHook('login', null, null)).click();
element(by.eeHook('authenticationEmailField',null,null)).sendKeys(logins.International);
element(by.name('password')).sendKeys(logins.password);
element(by.eeHook('authenticationLoginButton',null,null)).click();
browser.wait(EC.elementToBeClickable(paymentFlow), 100000);
paymentFlow.click();
browser.wait(EC.elementToBeClickable(depositAmount), 7000);
};
};
module.exports = TestingFunc;
在此处查看有关nodejs模块的更多信息: https://nodejs.org/api/modules.html