0

我正在尝试编写一些视觉测试,并使用 2.0.1 版的量角器图像比较遇到上述错误。即使库有更新,我还是决定坚持使用旧版本,因为我在使用最新版本时也遇到了一些问题。我的设置是:

//量角器.conf.js:

const { SpecReporter } = require('jasmine-spec-reporter');
const { join } = require('path');
const { ProtractorImageComparison } = require('protractor-image-comparison');

exports.config = {
  allScriptsTimeout: 11000,
  specs: ['./src/**/*-spec.ts'],
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: [
        // '--headless',
        '--disable-gpu', '--window-size=1600,950', '--no-sandbox'],
    },
  },
  SELENIUM_PROMISE_MANAGER: false,
  directConnect: true,
  framework: 'jasmine2',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {
    },
  },
  onPrepare() {
    require('ts-node').register({
      project: join(__dirname, './tsconfig.e2e.json'),
    });

    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));

    browser.protractorImageComparison = new ProtractorImageComparison({
      baselineFolder: join(__dirname, '/src/resources/baseline/'),
      screenshotPath: join(__dirname, '/src/tmp/'),
      formatImageName: '{tag}',
      autoSaveBaseline: false
    });
  },
};
4

1 回答 1

1

我今天遇到了这个问题,显然从3.0.1 版本开始,这个包现在作为插件而不是需要实例化的类。

我设法让它工作,将以下代码添加到我的 conf.js:

plugins: [
    {
        inline: require('protractor-image-comparison'),
        // package: 'protractor-image-comparison' //protractor is installed globally so it is checking for plugin globally also
        options: {
            baselineFolder: './testArtifacts/screen-compare/baselines/',
            screenshotPath: './testArtifacts/screen-compare/screenshots/',
            formatImageName: `{tag}-{logName}-{width}x{height}`,
            savePerInstance: true,
        },
    },
],

注意:对我来说量角器是全局安装的,所以我需要这个解决方法,inline而不是package让它在本地搜索插件模块。

于 2019-05-27T14:12:36.503 回答