但是我需要在测试用例中更改Angular应用程序URL,以确定需要进行测试的环境(因为URL因环境而异).
我正在使用Angular CLI命令ng e2e来运行测试.现在我的问题是
1)是否可以通过params ng e2e,以便基于params,可以在测试用例中动态设置URL?
2)是否有必要全局安装量角器,因为Angular CLI在node_modules下使用量角器创建角度应用程序?
在我的项目设置中,Protractor版本是5.1.2,Angular CLI版本是1.2.0.
下面是Protract配置
exports.config = { allScriptsTimeout: 11000,specs: [ './e2e/**/*.e2e-spec.ts' ],capabilities: { 'browserName': 'chrome' },directConnect: true,baseUrl: 'http://localhost:4200/',framework: 'jasmine',jasmineNodeOpts: { showColors: true,defaultTimeoutInterval: 30000,print: function() {} },useAllAngular2AppRoots: true,beforelaunch: function() { require('ts-node').register({ project: 'e2e' }); },onPrepare: function() { jasmine.getEnv().addReporter(new SpecReporter()); } };
我尝试了几个例子,比如添加params:[env:dev]并在命令行中传递参数为ng e2e params.env = test,但我总是得到默认值而不是从命令行传递的值.
我也试过@cnishina的答案,但是process.log的process.env没有必要的细节.
解决方法
我的建议是尝试使用环境变量并在Protractor配置文件中的环境之间切换.您可以导出TEST_ENV = dev,然后为browser.baseUrl提供条件
量角器配置文件
var baseUrl = ''; if (process.env.TEST_ENV === 'dev') { baseUrl = 'http://devurl'; } else if (process.env.TEST_ENV === 'stage') { baseUrl = 'http://stageurl'; } else { baseUrl = 'http://produrl'; } exports.config = { baseUrl: baseUrl }
有关使用process.env的配置文件的更好具体示例,请参阅Testing Angular Applications,chapter 11 GitHub repo.
你也可以改变内联的baseUrl参数;但是,如果您根据测试环境更改多个变量,我建议使用环境变量:
ng e2e {protractor config file} –baseUrl =’http:// devurl’
量角器全球安装?
量角器不需要全局安装.建议使用node_modules目录中本地安装的版本.这将为其他开发人员提供可重复的步骤,使用相同的Protractor依赖关系来运行e2e测试.或者,如果您使用全局安装的版本,则现在必须指示其他开发人员使用特定的Protractor版本.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。