【问题标题】:angular-cli - Use multiple karma.conf.jsangular-cli - 使用多个 karma.conf.js
【发布时间】:2017-08-30 05:06:41
【问题描述】:

我正在使用 angular-cli,我想使用两个 karma.conf.js 文件进行测试。

  1. 对于 CI:我正在使用 Headless Chrome

    自定义启动器:{

      ChromeHeadless: {
        base: 'Chrome',
        flags: [
          '--headless',
          '--disable-gpu',
          // Without a remote debugging port, Google Chrome exits immediately.
          '--remote-debugging-port=9222',
        ],
      }
    }
    
  2. 对于开发人员:我正在使用 Chrome。

有什么方法可以根据参数值在两个 karma.conf.js 之间切换。

【问题讨论】:

    标签: angular automated-tests karma-jasmine angular-cli karma-webpack


    【解决方案1】:

    Angular CLI v6 中,选项名称已更改:ng test --karma-config <your config here>

    【讨论】:

    • 他们并不是说要在接受的答案上使用它,只是在最新版本的 Angular 中,该选项从 --config 更改为 --karma-config,除了它是确切的与接受的答案相同的答案。它可能只是对已接受答案的评论,而不是单独的答案,但它仍然是有用的信息。
    【解决方案2】:

    您可以使用选项karmaConfig

    ng test --karmaConfig=another-karma.config.json
    

    您可能需要查看ng test --help=true 以了解其他选项。

    【讨论】:

    • 构建没有捆绑“替代配置文件”并且 CI 过程失败。有什么方法可以在包中包含其他文件?
    【解决方案3】:

    要运行特定的配置文件,您可以使用

    karma start path/to/config_file/from/root
    

    所以你可以创建一个名为 karma.chromeheadless.js 的文件和一个名为 karma.chrome.js 的文件并运行

    karma start karma.chromeheadless.js
    karma start karma.chrome.js
    

    甚至比这更好,您可以在 package.json 文件中添加一些脚本

    "scripts": {
      "chromeheadless": "karma start karma.chromeheadless.js",
      "chrome": "karma start karma.chrome.js",
    },
    

    然后运行它

    yarn run chromeheadless
    yarn run chrome
    

    根据你的包管理器,可能用 npm 替换 yarn 一词。第二种方法的优点是您不需要全局安装 karma。而且打字时间可能会短一些。如果你使用yarn,我想你甚至可以从命令中排除run这个词。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 2018-01-16
      • 2018-06-19
      • 2017-10-03
      • 2017-07-28
      • 2017-03-15
      • 2013-11-30
      相关资源
      最近更新 更多