【问题标题】:How do I run Protractor from a non-AngularCLI project?如何从非 AngularCLI 项目运行 Protractor?
【发布时间】:2017-05-09 03:32:37
【问题描述】:

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

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

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 文件被接受,但我的有typecipt .ts 结尾。这样做的正确方法是什么?谢谢。

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

【问题讨论】:

  • 你能发布你的目录结构吗?或者至少告诉我们您的conf.jsapp.e2e-spec.ts 文件的位置......谢谢。
  • @alecxe 完成。我删除了我的conf.js 文件,因为我认为这不是正确的做法。我应该重新创建它吗?
  • 所以,现在有了你的结构,我会是protractor protractor.config.js,假设你指定你的conf文件有specs: [ 'e2e/app.e2e-spec.ts' ]。执行上述操作时,请确保您与配置文件位于同一目录中

标签: angular protractor


【解决方案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。将来你可能会得到这个功能也一样!

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2014-02-21
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多