【问题标题】:Karma Chrome tests failing in Chrome, but passing in PhantomJSKarma Chrome 测试在 Chrome 中失败,但在 PhantomJS 中通过
【发布时间】:2017-09-26 21:40:47
【问题描述】:

我正在尝试使用 Karma 在 Chrome 浏览器中运行测试。我一直在 PhantomJS 中运行它们而没有任何问题,但希望切换到 ChromeHeadless。我发现测试在 Chrome 或 ChromeHeadless 中没有通过,但使用 PhantomJS 仍然通过。

我相信这与配置中包含的文件有关。我认为 PhantomJS 正在按预期加载它们,但由于某种原因,Chrome 不是。我在这里查看了其他问题,但解决方案并不是特别相关,不幸的是没有奏效。

这是我在尝试使用 Chrome 运行测试时遇到的错误:

Uncaught TypeError: Cannot read property 'maps' of undefined

指的是google.maps,派生自window.google,应该在karma.conf.js的文件中声明:

module.exports = function(config) {
  config.set({
    // autoWatch: true,
    browserConsoleLogOptions: {
      terminal: true,
      level: ''
    },
    // Prevent timeout issues when running the tests
    browserDisconnectTimeout: 10000,
    browserDisconnectTolerance: 3,
    browserNoActivityTimeout: 60000,
    browsers: ['Chrome'],
    captureTimeout: 2000,
    // debug: true,
    files: [
    'http://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js',
      'http://maps.googleapis.com/maps/api/js?client=client_id',
      { pattern: 'test-context.js', watched: false }
    ],
    frameworks: ['jasmine'],
    // logLevel: config.LOG_DEBUG,
    port: 9876,
    preprocessors: {
      'test-context.js': ['webpack'],
    },
    reporters: ['progress', 'spec'],
    singleRun: true,
    webpack: require('./webpack/config.test'),
    webpackServer: {
      noInfo: true
    },
  });
};

有谁知道我可能做错了什么,或者为什么运行 Chrome 浏览器进行测试似乎没有拉入外部文件?

我可能会模拟整个 google maps 对象,但这似乎过度且不必要,因为它应该包含在指定的文件中。

如果有人有任何想法,我将非常感谢您的帮助。谢谢!

【问题讨论】:

    标签: javascript karma-runner karma-chrome-launcher


    【解决方案1】:

    我终于明白了。它最终成为阻止加载外部文件的 CORS 问题。将以下代码添加到我的 karma.conf 文件为我解决了这个问题:

    crossOriginAttribute: false,
    

    【讨论】:

    • 你在哪里添加了这个属性?
    • @Sid 到karma.conf 文件
    • 尽管有 google maps api shim,但我的测试开始失败。我升级到使用版本 3.34,这显然与旧版本的 shim 略有不同。将完整的脚本 url 添加到我的文件中,并将此属性添加到配置中解决了这个问题。另外,我不再需要 shim 文件。 +1
    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2017-02-17
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多