【问题标题】:With Travis-CI, how do I test chrome packaged apps?使用 Travis-CI,我如何测试 chrome 打包的应用程序?
【发布时间】:2014-04-27 14:19:09
【问题描述】:

我正在使用 Angular JS 编写一个 chrome 打包的应用程序。

我的设置使用 grunt/karma/jasmine 进行构建/单元测试,在我开始使用 chrome.* API 之前一切都很好。这当然是一个问题,因为我将 Travis-CI 设置为使用 PhantomJS,但 Phantom 不知道 chrome 全局变量。

  1. 有没有一种方法可以运行带有 karma 的单元测试,不会抛出 ReferenceError: Can't find variable: chrome 来测试打包的应用程序,从而通过 Travis-CI 测试
  2. 有没有办法抑制 PhantomJS 抛出的错误(这听起来已经很糟糕了)

【问题讨论】:

    标签: angularjs phantomjs google-chrome-app karma-runner


    【解决方案1】:

    一些想法:

    1. 您可以在运行测试之前填充/存根 chrome.* api,以模拟 chrome 应用程序环境。不确定是否有人已经这样做了(即这是我找到的一个快速example for node-webkit)。这听起来像是一个有人应该写的有用的库;)

    2. 只需跳过那些你知道在 PhantomJS 上总是会失败的测试,通过使用像 if (!is_chrome_app) return; 这样的保护来包装 jasmine 测试定义。在 jasmine 中执行此操作的一种干净方法是创建一个 defineChromeAppOnly 帮助程序,如果它不是 chome 应用程序,则跳过定义调用。

    3. 您可能需要一个替代系统来在真正的 chrome 应用程序中实际运行测试。我一直只是为此构建自己的粗略 CI(或手动完成),但由于这对于简化 CI 来说很酷,所以我提交了request with Travis CI Team to support Chrome Packaged Apps。如果您对他们的回复感兴趣,请为该问题加注星标。

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多