Angularjs 在每个测试文件中使用相同的变量
为了进行测试,我使用了多个文件。每一个代表网站的一部分进行测试 在一个启动测试文件中,我为新案例的名称创建了variabile,如下所示:Angularjs 在每个测试文件中使用相同的变量,angularjs,selenium,testing,protractor,end-to-end,Angularjs,Selenium,Testing,Protractor,End To End,为了进行测试,我使用了多个文件。每一个代表网站的一部分进行测试 在一个启动测试文件中,我为新案例的名称创建了variabile,如下所示: var moment = require('../../../../../node_modules/moment'); describe('Create new case', function() { var caseNumber = moment().format('YYYYMMDD-HHmmss-SS'); 但是在最后的某个地方(在另一个测
var moment = require('../../../../../node_modules/moment');
describe('Create new case', function() {
var caseNumber = moment().format('YYYYMMDD-HHmmss-SS');
但是在最后的某个地方(在另一个测试文件中),我想再次使用这个caseNumber
(与第一个测试中使用的完全相同,而不是生成新的测试)
有谁能告诉我如何在量角器中执行此操作吗?让一个测试依赖另一个测试来定义和导出变量听起来不太正确。使用
global
,在onPrepare()中设置全局变量:
onPrepare: function() {
global.caseNumber = moment().format('YYYYMMDD-HHmmss-SS');
},
然后,您将在所有测试中将caseNumber
作为全局变量。无需使用全局变量。您可以通过创建自己的模块并要求它来提高可读性:
//test/lib/homepage.js
var moment = require('moment');
module.exports = {
caseNumber: moment().format('YYYYMMDD-HHmmss-SS'),
getContent: function () { //another example of reuse
return element(by.css('body'));
});
};
//test/homepage.spec.js
var page = require('./lib/homepage');
describe('Homepage', function() {
it('should display correct date', function () {
expect(page.getContent()).toContain(page.caseNumber);
});
});
Hi@alecxe谢谢,将其添加到了dragrator.conf,还添加了力矩路径。工作正常。当您需要节点模块时,不需要相对路径,只需调用require('moment')
如果可读性更好或不可读,这是有争议的,但这肯定会提供更好的模块化和关注点分离。我认为值得一提的是,这是一个页面对象模式。谢谢