【问题标题】:jasmine-reporters is not generating any filejasmine-reporters 没有生成任何文件
【发布时间】:2014-10-03 09:46:55
【问题描述】:

我正在使用 jasmine-reporters 在量角器完成测试后生成报告,

这是我的配置文件:

  onPrepare: function(){
            var jasmineReporters = require('jasmine-reporters');
            var capsPromise = browser.getCapabilities();
            capsPromise.then(function(caps){
                var browserName = caps.caps_.browserName.toUpperCase();
                var browserVersion = caps.caps_.version;
                var prePendStr = browserName + "-" + browserVersion + "-";
                jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter("protractor_output", true, true,prePendStr));
            });
     },

我没有收到任何错误,记者安装了,但我在 protractor_output 文件夹中看不到任何文件。

知道我做错了什么吗?

【问题讨论】:

  • 你试过新的 jasmine.JUnitXmlReporter('reports', true, true, prePendStr);而不是 jasmineReporters ?
  • 是的,我得到:TypeError: undefined is not a function
  • 这很奇怪,因为你更早地调用了 jasmine.getEnv()。当我开始为我使用这个报告器时,它也没有写入文件,当我调查 mij node_modules 目录中的 junitXmlReporter 时,我发现它没有我期望它从其他人在 stackoverflow 上发布的参数。也许这也会导致您的设置出现未记录的错误。
  • @AndrePaap 这只是意味着茉莉花由于某种原因不包含 JUnitXmlReporter,我尝试重新安装它但它没有工作,如果我使用 jasmineReporters 但我没有收到错误在我尝试成功和失败的文件夹中看不到文件,并且没有生成文件
  • 也许我理解错了。这是我的设置: require('jasmine-reporters'); jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('reports', true, true));.所以我从全局茉莉花中创建了 JunitXmlReporter,但参数较少。我使用的 jasmine-reports 版本可以带第四个参数。

标签: jasmine protractor jasmine-node


【解决方案1】:

问题出在 jamsine 版本上:

如果您尝试将 jasmine-reporters 与 Protractor 一起使用,请记住 Protractor 是围绕 Jasmine 1.x 构建的。因此,您需要使用 jasmine-reporters 的 1.x 版本。

npm install jasmine-reporters@~1.0.0

那么配置应该是:

onPrepare: function() {
    // The require statement must be down here, since jasmine-reporters@1.0
    // needs jasmine to be in the global and protractor does not guarantee
    // this until inside the onPrepare function.
    require('jasmine-reporters');
    jasmine.getEnv().addReporter(
        new jasmine.JUnitXmlReporter('xmloutput', true, true)
    );
}

如果您使用的是较新版本的 Jasmine Reporter,则 require 语句不再将 JUnitXmlReporter 放在 jasmine 对象上,而是将其放在模块导出中。您的设置将如下所示:

onPrepare: function() {
    // The require statement must be down here, since jasmine-reporters@1.0
    // needs jasmine to be in the global and protractor does not guarantee
    // this until inside the onPrepare function.
    var jasmineReporters = require('jasmine-reporters');
    jasmine.getEnv().addReporter(
        new jasmineReporters.JUnitXmlReporter('xmloutput', true, true)
    );
}

您还需要验证 xmloutput 目录是否存在!

【讨论】:

  • 较新版本的 jasmine 报告器不再附加到 Jasmine 对象,因此您必须使用导出。 var jasmineReporters = require('jasmine-reporters'); ... new jasmineReporters.JUnitXmlReporter('xmloutput', true, true) ...
  • @Snekse 你应该添加它作为一个答案,它应该已经被接受了
【解决方案2】:

要完成答案,如果输出仍然没有生成,

尝试将这些配置行添加到您的量角器exports.config 对象中:

framework: "jasmine2",
onPrepare: function() {
    var jasmineReporters = require('jasmine-reporters');
.......
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多