【问题标题】:Save protractor allure html report locally在本地保存量角器诱惑 html 报告
【发布时间】:2018-02-27 04:44:26
【问题描述】:

我正在使用 Protractor 和 jasmine-allure-reporter。执行测试后,我在“allure-results”中获取 XML 文件,然后使用“allure serve allure-results”命令生成 HTML 报告。执行此命令时,将在“Temp”文件夹 (%Temp%\8691932647422029\allure-report) 中生成 html 报告。我想在本地生成/保存此报告,我该怎么做。因为在测试运行之后我可能不得不分享 html 报告。你能帮我解决这个问题吗? 下面是 allure-report 的 Config.js 部分

onPrepare: function() {
    var AllureReporter = require('jasmine-allure-reporter');

    jasmine.getEnv().addReporter(new AllureReporter());
    jasmine.getEnv().afterEach(function(done){      
      //allure.addEnvironment(Path, 'Chrome'),
      browser.takeScreenshot().then(function (png) {      
      allure.createAttachment('Screenshot', function () {
          return new Buffer(png, 'base64')
        },'image/png')();
        done();
      })
    });
  }

【问题讨论】:

  • 您能否提供实际显示如何将茉莉花诱惑记者添加到量角器的代码?我猜它在量角器配置文件中。另外,查看文档,您是否尝试设置resultDir?见github.com/allure-framework/allure-jasmine/blame/master/…
  • 我已经包含了我用来添加茉莉花诱惑记者的代码。是的,它在量角器 conf 文件中。我相信 resultDir 是针对 XML 文件而不是针对 HTML 的,我正确吗?这里我需要本地目录中的 html 报告而不是 xml 文件。
  • 查看自述文件,The Reporter will generate xml files inside of a resultsDir, then we need to generate HTML out of them. 如果我正在编写这个框架,我可能会在 xml 目录的相同或相对路径中创建 HTML。也许试一试?

标签: directory protractor report allure


【解决方案1】:

请按照此设置在本地目录中生成输出。 'Allure Command Line Tool' 将帮助您生成魅力报告。

通过运行此命令安装它npm install allure-commandline --save-dev

之后,将 "posttest": "allure generate allure-results --clean -o allure-report" 部分添加到您的 package.json 中。因此,当使用 npm test 运行测试时,posttest 中提到的命令将在您的本地目录中生成报告。您可以参考下面package.json 文件的示例script 部分。

"scripts": {
        "pretest": "rm -rf allure-report",
        "test": "protractor conf.js",
        "posttest": "allure generate allure-results --clean -o allure-report || true"
    }

posttest 部分中,您指的是--clean -o 部分之后的输出目录位置。

还像这样更改您的conf.js 文件并在resultsDir 部分添加本地目录路径以存储生成的xml 文件。

onPrepare: function () {

    var AllureReporter = require('jasmine-allure-reporter');

    //allure report
    jasmine.getEnv().addReporter(new AllureReporter({
        resultsDir: 'allure-results'
    }));

    /* 
     * It will take screenshot after each Jasmine function 'it'
     */        
    jasmine.getEnv().afterEach(function (done) {
        browser.takeScreenshot().then(function (png) {
            allure.createAttachment('Screenshot', function () {
                return new Buffer(png, 'base64')
            }, 'image/png')();
            done();
        })
    });

}

当前设置将生成allure-results 中的所有xml 文件和allure-report 文件夹中的html 报告(两者都在根目录中)。

|-allure-results
|-allure-report
|-node_modules
|-src-|-conf.js
      |-package.json

请参考github中的示例项目

【讨论】:

  • 在“allure-results”中生成此代码和命令 xml 文件。但是在 allure-report 中没有生成 html 报告,这个文件夹是空的。当我手动尝试在 allure-report 中生成 index.html 报告时。但 index.html 显示为“正在加载...”。这意味着它没有显示任何测试结果。
  • 这就是我在 package.json 中的脚本的样子。 "scripts": { "pretest": "rm -rf allure-report", "test": "protractor config.js", "posttest": "allure generate allure-results --clean -o allure-report || true " }
  • 抱歉回复延迟。我没有收到任何错误。面临与第一条评论中提到的相同的问题。可以通过手动执行命令生成html文件。但是生成的 html 文件没有任何数据。它显示“404 not found”错误。
  • 请在 Firefox 中打开相同的报告.. :) 这可能是问题.. stackoverflow.com/questions/23997449/…
  • awsm jitmat :)。你是对的,问题出在浏览器上。我可以在Firefox中打开。谢谢:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多