【发布时间】:2017-09-01 10:11:43
【问题描述】:
我是Protractor 的新手。我开发了几个测试用例来完成端到端测试。这些测试用例在我们拥有的所有 3 种不同环境中都能正常工作:dev、testing 和 production。
但我需要在测试用例中根据需要进行测试的环境更改 Angular 应用程序 URL(因为 URL 因环境而异)。
我正在使用 Angular CLI 命令ng e2e 运行测试。现在我的问题是
1) 是否可以传递参数ng e2e,这样就可以根据参数在测试用例中动态设置URL?
2) 是否需要全局安装protractor,因为Angular CLI 在node_modules 下创建带有protractor 的angular 应用程序?
在我的项目设置中,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.env 的console.log 没有所需的详细信息。
【问题讨论】:
标签: angular protractor angular2-testing angular2-cli