Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在每个测试文件中使用相同的变量_Angularjs_Selenium_Testing_Protractor_End To End - Fatal编程技术网

Angularjs 在每个测试文件中使用相同的变量

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'); 但是在最后的某个地方(在另一个测

为了进行测试,我使用了多个文件。每一个代表网站的一部分进行测试

在一个启动测试文件中,我为新案例的名称创建了variabile,如下所示:

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')
如果可读性更好或不可读,这是有争议的,但这肯定会提供更好的模块化和关注点分离。我认为值得一提的是,这是一个页面对象模式。谢谢