【问题标题】:protractor-jasmine2-screenshot-reporter not generating screenshots in the required folderprotractor-jasmine2-screenshot-reporter 未在所需文件夹中生成屏幕截图
【发布时间】:2018-03-17 09:36:17
【问题描述】:

我的 protractor.conf.js 有以下内容。我无法找出这里出了什么问题。我在 angular-cli 的根文件夹中手动创建了目标/屏幕截图。当我运行量角器 conf.js 时,量角器会在浏览器窗口中进行测试,但不会生成屏幕截图。谁能帮我解决这个问题?

// Protractor configuration file

const { SpecReporter } = require('jasmine-spec-reporter');
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var fs = require('fs');

var reporter = new HtmlScreenshotReporter({
  dest: 'target/screenshots',
  filename: 'my-report.html',
  cleanDestination: false,
  showSummary: true,
  showConfiguration: false,
  reportTitle: null,
  ignoreSkippedSpecs: false,
  captureOnlyFailedSpecs: false,
  reportOnlyFailedSpecs: false
});

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: false,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  chromeOnly: true,
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js'],
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
    jasmine.getEnv().addReporter(reporter);  
  },
  afterLaunch: function(exitCode) {
    return new Promise(function(resolve){
      reporter.afterLaunch(resolve.bind(this, exitCode));
    });
  }
};

提前致谢!

【问题讨论】:

    标签: node.js angular jasmine protractor screenshot


    【解决方案1】:

    您可以通过添加“protractor-screenshoter-plugin”来检查

    plugins: [{
        package: 'protractor-screenshoter-plugin',
        screenshotPath: <specify the path>,
        screenshotOnExpect: 'failure',
        screenshotOnSpec: 'failure+success',
        withLogs: 'true',
        writeReportFreq: 'asap',
        imageToAscii: 'failure',
        htmlReport:'true',
        verbose:'info',
        clearFoldersBeforeTest: true,
        failTestOnErrorLog: {
            failTestOnErrorLogLevel: 900
        }
    },
    

    也可以查看https://www.npmjs.com/package/protractor-screenshoter-plugin

    【讨论】:

      【解决方案2】:

      protractor-jasmine2-screenshot-reporterjasmine2 兼容,因此请在 conf.js 中更改为 framework: 'jasmine2'

      您需要使用更高版本的Protractor,其中包括jasmine2

      我用你的 conf 做了一个快速测试(做了一些小改动),它奏效了。

      conf.js

      var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
      // var fs = require('fs');
      
      var reporter = new HtmlScreenshotReporter({
        dest: 'target/screenshots',
        filename: 'my-report.html',
        cleanDestination: false,
        showSummary: true,
        showConfiguration: false,
        reportTitle: null,
        ignoreSkippedSpecs: false,
        captureOnlyFailedSpecs: false,
        reportOnlyFailedSpecs: false
      });
      
      exports.config = {
        allScriptsTimeout: 11000,
      //   specs: [
      //     './e2e/**/*.e2e-spec.ts'
      //   ],
        capabilities: {
          'browserName': 'chrome'
        },
        directConnect: false,
      //   baseUrl: 'http://localhost:4200/',
        framework: 'jasmine2',
      //   chromeOnly: true,
        seleniumAddress: 'http://localhost:4444/wd/hub',
        specs: ['spec.js'],
        jasmineNodeOpts: {
          showColors: true,
          defaultTimeoutInterval: 30000,
          print: function() {}
        },
        onPrepare() {
          jasmine.getEnv().addReporter(reporter);  
        },
        afterLaunch: function(exitCode) {
          return new Promise(function(resolve){
            reporter.afterLaunch(resolve.bind(this, exitCode));
          });
        }
      };
      

      spec.js

         describe('xxx', function(){
      
              it('yyy', function(){
      
                  browser.get('https://angular.io/');
              });
          });
      

      target/screenshots 文件夹和 HTML 报告, (我跑了两次,所以有两张截图。)

      • 点击yyy会打开截图
      • protractor-jasmine2-screenshot-reporter 不存在时会创建target/screenshots 文件夹,无需提前创建。

      我使用的版本

      protractor 5.3.0
      protractor-jasmine2-screenshot-reporter  0.5.0
      

      【讨论】:

      • 可以推荐任何特定版本的量角器?我用的是5.3最新版本
      • 从 Protractor 1.6 开始,protractor 支持 jasmine2,所以可以像 5.3.0 一样使用 5.x 版本。如果您当前的量角器 > 1.6,您可以保留它,只需更改为framework: 'jasmine2',然后再次运行。
      • 不要单独安装 Jasmine,Protractor 在安装 Protractor 时会将其作为依赖安装。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多