【问题标题】:Angular cli, overwrite the command that gets run by 'ng e2e'?Angular cli,覆盖由“ng e2e”运行的命令?
【发布时间】:2019-01-09 17:38:39
【问题描述】:

我正在尝试针对应用程序的实例运行 Angular 的 e2e 测试在不同的服务器上而不是我的本地机器。 所以要明确一点,我没有测试我的本地代码

我只需要在没有角度构建步骤的情况下运行量角器,因为这是浪费时间,因为我正在测试的代码在另一台服务器上。不幸的是,如果我过度修改/删除以下行,angular.json 文件会引发错误:

"builder": "@angular-devkit/build-angular:protractor",

我已经有一个解决方案,但它很冗长,我希望能够不改变我的队友从他们的 shell 运行测试的方式:

node node_modules/protractor/bin/protractor e2e/protractor.conf.js

我有两个想法:

  1. 编写运行此命令的 npm 脚本(我最终可能会这样做)
  2. 了解如何覆盖 ng e2e 所做的事情。如果我可以在这里运行更复杂的命令,它将节省工作效率和反馈时间。

我正在使用 Angular V7。

是否可以覆盖ng e2e 以便它执行node node_modules/protractor/bin/protractor e2e/protractor.conf.js 而可能?

【问题讨论】:

    标签: node.js angular protractor angular-cli angular-e2e


    【解决方案1】:

    是的。我会做#1。更新你的 package.json 是有意义的

    "scripts": {
      "protractor": "protractor e2e/protractor.conf.js"
    }
    

    然后运行npm run protractor。 e2e 命令也在下载 chromedriver、selenium jar 文件,也许还有 geckodriver?与 webdriver 管理器。如果您希望将其作为前置步骤:

    "scripts": {
      "protractor": "protractor e2e/protractor.conf.js",
       // just download chromedriver and the selenium jar
      "preprotractor": "webdriver-manager update --gecko false"  
    }
    

    它还会启动您的 Angular 应用程序。如果您需要这样做,我只需调用ng serve 并在后台进程中运行它。我希望这会有所帮助。

    【讨论】:

    • 这基本上是我得出的结论。至少在本地运行,他们仍然可以执行“npm e2e”之类的操作,而不必担心细节问题。感谢您的意见!
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    相关资源
    最近更新 更多