TS 是否接受量角器配置中定义的全局变量?
Have TS accept global variables defined in Protractor config?
在 Protractor 配置中的 onPrepare 方法中添加全局变量时,Typescript 在尝试在测试文件中使用时提供错误 "Cannot find name '____'"。
下面是我如何在量角器配置中定义全局变量。
protractorConfig.js
onPrepare: function () {
global.logger = log4js.getLogger( 'log' );
},
下面是我如何使用全局变量。
homepageTests.js
it( '1@tests homepage', function () {
logger.info( 'password for application: ' + pswd );
} );
参考下面的SOpost,在onPrepare方法中设置全局变量是Protractor库的做法,所以应该是有效的。
此错误是 TypeScript 编译时错误,因为 TS 不知道 globals
以及其中添加了某些内容的事实。
为了解决这个问题,您需要以某种方式为全局变量添加声明或仅使用断言。
it('1@tests homepage', function () {
(global as any).logger.info('password for application: ' + pswd);
});
当然any
可以换成更有用的东西
另一种选择是在 tsconfig.json
附近创建 globals.d.ts
用于 e2e 测试,并将此行放在那里:
declare const logger: any; // Again, 'any' may be replaced with real type
这样您就可以随心所欲地访问logger
it('1@tests homepage', function () {
logger.info('password for application: ' + pswd);
});
您可能会找到其他一些合适的选项
在 Protractor 配置中的 onPrepare 方法中添加全局变量时,Typescript 在尝试在测试文件中使用时提供错误 "Cannot find name '____'"。
下面是我如何在量角器配置中定义全局变量。
protractorConfig.js
onPrepare: function () {
global.logger = log4js.getLogger( 'log' );
},
下面是我如何使用全局变量。
homepageTests.js
it( '1@tests homepage', function () {
logger.info( 'password for application: ' + pswd );
} );
参考下面的SOpost,在onPrepare方法中设置全局变量是Protractor库的做法,所以应该是有效的。
此错误是 TypeScript 编译时错误,因为 TS 不知道 globals
以及其中添加了某些内容的事实。
为了解决这个问题,您需要以某种方式为全局变量添加声明或仅使用断言。
it('1@tests homepage', function () {
(global as any).logger.info('password for application: ' + pswd);
});
当然any
可以换成更有用的东西
另一种选择是在 tsconfig.json
附近创建 globals.d.ts
用于 e2e 测试,并将此行放在那里:
declare const logger: any; // Again, 'any' may be replaced with real type
这样您就可以随心所欲地访问logger
it('1@tests homepage', function () {
logger.info('password for application: ' + pswd);
});
您可能会找到其他一些合适的选项