如何从非AngularCLI项目运行Protractor?

时间:2017-05-08 18:53:31

标签: angular protractor

我刚刚开始使用Protractor,我准备好进行第一次测试了。但是,我不知道该怎么做。我尝试在cmd中键入ng e2e,但显然我“必须在Angular CLI项目中才能使用e2e命令”。

http://www.protractortest.org/#/tutorial的指南中,他们通过创建conf.js文件,然后在cmd中键入protractor conf.js来告诉您运行测试。我试过了,但当我输入我的spec文件的名称时,就像这样:

specs: ['app.e2e-spec.ts']

我收到错误:

[20:24:58] E/configParser - Error code: 105
[20:24:58] E/configParser - Error message: configuration file conf.js did not export a config object

我试图将其更改为.js只是为了看看会发生什么,然后我没有收到任何错误,但它说“没有找到规格”。因此,似乎只接受.js个文件,但是我的typescipt .ts结尾。这样做的正确方法是什么?感谢。

编辑:这是我的目录结构:

enter image description here

2 个答案:

答案 0 :(得分:1)

由于您使用的是Typescript,因此现在调用spec.ts文件的正确方法是在ts-node模块的帮助下。

ts-node模块npm install -S ts-node安装到您的项目中。

按如下方式在config.ts中调用您的规范文件:

specs: [
'./e2e/*-spec.ts'
],
beforeLaunch: function() {
require('ts-node').register({
  project: 'e2e'
});
},

注意:编译config.ts后,您最终必须调用protractor config.js,因为它目前不支持直接调用config.ts.In未来你也可以获得这个功能!

由于您刚开始使用量角器,我建议您查看Protractor-Cookbook。在这里,您可以找到包含示例的所有配置!

答案 1 :(得分:0)

您应该通过以下方式调用特定规范:

protractor protractor-conf.js --specs=<path/specName1,path/specName2>

因此,您必须将量角器配置作为您的第一个CLI arg。在上面的用例中,您需要在运行量角器命令的目录中有一个文件名conf.js