规范文件量角器中无法访问全局变量
Global variables aren't accessible in spec files protractor
在自动化 angular 4 应用程序时,我需要声明一些全局变量,即 myVar = 'John'
。我尝试在 protractor.conf 中声明它,但它不起作用。我已经看过 但这些解决方案对我不起作用。有什么解决办法吗?我正在使用量角器版本 5.4.2。
exports.config = {
//..
params:{
myVar = 'John'
},
//..
}
我也已经用过了,但它不起作用
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
//this global variable
global.myVar = 10000;
browser.waitForAngularEnabled(false);
browser.driver.manage().window().maximize();
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
提前致谢
您错过了教程:
params: {
myVar: 500;
}
let a = browser.params.myVar;
console.log(a); // 500
params 是一个对象,因此需要 :
将值赋给 myVar,而不是 =
。
exports.config = {
params:{
myVar:'John'
},
}
调用方式如下
console.log(browser.params.myVar)
第二种方法应该可以正常工作。你只需要调用它
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
//this global variable
global.myVar = 10000;
browser.waitForAngularEnabled(false);
browser.driver.manage().window().maximize();
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
调用
console.log(myVar);
另请注意,当使用 'global.blabla' 或 'browser.params' 并启用测试并行化 (shardTestFiles: true
) 时,它们将是只读的。这意味着如果您将在一个线程中更改这些变量 - 其他线程仍将具有旧值,因为在量角器中每个测试线程都在单独的 nodejs 进程中运行并且它们没有共享内存。
在自动化 angular 4 应用程序时,我需要声明一些全局变量,即 myVar = 'John'
。我尝试在 protractor.conf 中声明它,但它不起作用。我已经看过
exports.config = {
//..
params:{
myVar = 'John'
},
//..
}
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
//this global variable
global.myVar = 10000;
browser.waitForAngularEnabled(false);
browser.driver.manage().window().maximize();
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
提前致谢
您错过了教程:
params: {
myVar: 500;
}
let a = browser.params.myVar;
console.log(a); // 500
params 是一个对象,因此需要 :
将值赋给 myVar,而不是 =
。
exports.config = {
params:{
myVar:'John'
},
}
调用方式如下
console.log(browser.params.myVar)
第二种方法应该可以正常工作。你只需要调用它
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
//this global variable
global.myVar = 10000;
browser.waitForAngularEnabled(false);
browser.driver.manage().window().maximize();
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
调用
console.log(myVar);
另请注意,当使用 'global.blabla' 或 'browser.params' 并启用测试并行化 (shardTestFiles: true
) 时,它们将是只读的。这意味着如果您将在一个线程中更改这些变量 - 其他线程仍将具有旧值,因为在量角器中每个测试线程都在单独的 nodejs 进程中运行并且它们没有共享内存。