如何在量角器自动化中使用Javascript名称空间?
我有3个文件,即conf.js、actionwords.js、project_test.js。 Actionwords.js和project_test.js是从hiptest工具生成的文件。所以我需要使用这种结构来自动化测试用例。当我运行cmd时,我得到一个错误 我跑:如何在量角器自动化中使用Javascript名称空间?,javascript,jquery,automation,jasmine,protractor,Javascript,Jquery,Automation,Jasmine,Protractor,我有3个文件,即conf.js、actionwords.js、project_test.js。 Actionwords.js和project_test.js是从hiptest工具生成的文件。所以我需要使用这种结构来自动化测试用例。当我运行cmd时,我得到一个错误 我跑: protractor conf.js 信息: 失败:无法读取未定义的属性“theApplicationURL” 堆栈: TypeError:无法读取未定义的属性“theApplicationURL” //conf.js exp
protractor conf.js
信息:
失败:无法读取未定义的属性“theApplicationURL”
堆栈:
TypeError:无法读取未定义的属性“theApplicationURL”
//conf.js
exports.config = {
framework: 'jasmine2',
directConnect: true,
seleniumAddress: 'http://localhost:4444/wd/hub',
specs:['path to/project_test.js'],
capabilities: { 'browserName': 'chrome' }
};
//actionwords.js
var Actionwords = {
theApplicationURL: function () {
browser.get('localhost');
browser.driver.manage().window().maximize();
browser.sleep(5000);
},
};
//project_test.js
describe('Test', function () {
beforeEach(function () {
this.actionwords = Object.create(Actionwords);
});
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
// Given the application URL
this.actionwords.theApplicationURL();
});
});
有人能帮我吗?在每个(…)之前的中,这是指传递给它的匿名函数。这同样适用于it(…)
在描述的范围内声明变量
describe('Test', function() {
var actionwords = Object.create(Actionwords);
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function() {
actionwords.toApplicationURL();
});
});
在每个(…)
之前的中,这是指传递给它的匿名函数。这同样适用于it(…)
在描述的范围内声明变量
describe('Test', function() {
var actionwords = Object.create(Actionwords);
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function() {
actionwords.toApplicationURL();
});
});
更改为:
var actionwords = {
theApplicationURL: function () {
browser.get('localhost');
browser.driver.manage().window().maximize();
browser.sleep(5000);
},
};
module.exports = actionwords;
测试:
对这篇
评论的反应:
您可以在每次
之前的中将其分配给此范围:
var actionwords = require("actionwords.js")
describe('Test', function () {
beforeEach(function () {
this.actionwords = actionwords;
});
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
// Given the application URL
this.actionwords.theApplicationURL();
});
});
更改为:
var actionwords = {
theApplicationURL: function () {
browser.get('localhost');
browser.driver.manage().window().maximize();
browser.sleep(5000);
},
};
module.exports = actionwords;
测试:
对这篇
评论的反应:
您可以在每次
之前的中将其分配给此范围:
var actionwords = require("actionwords.js")
describe('Test', function () {
beforeEach(function () {
this.actionwords = actionwords;
});
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
// Given the application URL
this.actionwords.theApplicationURL();
});
});
更新您的actionword.js
,如下所示
var Actionwords = {
theApplicationURL: function () {
browser.get('localhost');
browser.driver.manage().window().maximize();
browser.sleep(5000);
},
};
module.exports = new Actionwords();
而您的项目_test.js
将如下所示:
this.actionwords = require("actionword.js");
describe('Test', function () {
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
this.actionwords.theApplicationURL();
});
});
更新您的actionword.js
,如下所示
var Actionwords = {
theApplicationURL: function () {
browser.get('localhost');
browser.driver.manage().window().maximize();
browser.sleep(5000);
},
};
module.exports = new Actionwords();
而您的项目_test.js
将如下所示:
this.actionwords = require("actionword.js");
describe('Test', function () {
it('Login_Test (uid:fe6d6670-a864-4d0f-a867-3faf9f51ff8d)', function () {
this.actionwords.theApplicationURL();
});
});
尝试但是没有起作用。引用错误:未定义Actionwords哪行?当调用“Object.create”或调用“actionwords.toApplicationURL”时?声明var actionwords=require(“actionwords.js”)
@Sudharsan Selvaraj:我之前做过。仍不工作。具体来说:失败:无法读取undefinedTried的属性“theApplicationURL”。但是没有起作用。引用错误:未定义Actionwords哪行?当调用“Object.create”或调用“actionwords.toApplicationURL”时?声明var actionwords=require(“actionwords.js”)
@Sudharsan Selvaraj:我之前做过。仍然不起作用。具体来说:失败:无法读取未定义的属性“theApplicationURL”具体来说:失败:无法读取未定义的属性“theApplicationURL”得到此消息..消息:失败:actionwords.theApplicationURL不是再次更新的函数,您也需要导出Luboskrnac:谢谢您的回答。它正在工作。。但是我不能更改我的测试文件。原因是我从一个工具导出它。因此,假设有60000个测试用例,我不能为每个测试用例更改我的测试文件。我需要保持这样。actionwords.theApplicationURL();所以我不能从actionwords中删除这个;因为这就是我从工具中得到的结构。你能在这方面帮助我吗。具体来说:失败:无法读取未定义的属性'theApplicationURL'获取此..消息:失败:actionwords.theApplicationURL不是再次更新的函数,你也需要导出Luboskrnac:谢谢你的回答。它正在工作。。但是我不能更改我的测试文件。原因是我从一个工具导出它。因此,假设有60000个测试用例,我不能为每个测试用例更改我的测试文件。我需要保持这样。actionwords.theApplicationURL();所以我不能从actionwords中删除这个;因为这就是我从工具中得到的结构。在这方面你能帮我更多吗?将你的actionwords改为函数而不是对象并导出,然后在project_test.js中使用require()将你的actionwords改为函数而不是对象并导出,然后在project_test.js中使用require()导出对象而不是对象函数。因此,如果不在测试规范中使用,可能会造成空间浪费。导出对象不是对象函数。因此,如果不在测试规范中使用,可能会造成空间浪费。