首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TS是否接受Protractor配置中定义的全局变量?

问TS是否接受Protractor配置中定义的全局变量?
EN

Stack Overflow用户
提问于 2020-04-03 03:04:56
回答 1查看 216关注 0票数 0

在Protractor配置中的onPrepare方法中添加全局变量时,当尝试在测试文件中使用时,Typescript提供错误“无法找到名称'____'”。

下面是我如何在我的Protractor配置中定义全局变量。

代码语言:javascript
复制
protractorConfig.js

onPrepare: function () {
  global.logger = log4js.getLogger( 'log' );
},

下面是我是如何利用全局变量的。

代码语言:javascript
复制
homepageTests.js

  it( '1@tests homepage', function () {
       logger.info( 'password for application: ' + pswd );
  } );

参考下面的SO post,在onPrepare方法中设置全局变量是Protractor库执行此操作的方式,因此它应该是有效的。Protractor set global variables

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-03 05:26:15

这个错误是一个TypeScript编译时错误,因为TS不知道globals,也不知道在那里添加了一些东西。为了解决这个问题,你需要以某种方式为全局变量添加一个声明,或者仅仅使用断言。

代码语言:javascript
复制
it('1@tests homepage', function () {
   (global as any).logger.info('password for application: ' + pswd);
});

当然,可以用更有用的东西来取代any。

另一种选择是在tsconfig.json附近创建用于e2e测试的globals.d.ts,并将下面这一行放在那里:

代码语言:javascript
复制
declare const logger: any; // Again, 'any' may be replaced with real type

这样,您就可以随心所欲地访问logger

代码语言:javascript
复制
it('1@tests homepage', function () {
   logger.info('password for application: ' + pswd);
});

您可能会找到其他一些合适的选项in this SO question

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60999181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档