1

在量角器完成测试后,我正在使用 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文件夹中看不到任何文件。

知道我在做什么错吗?

4

2 回答 2

7

问题出在 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 目录是否存在!

于 2014-08-10T13:03:48.610 回答
0

要完成答案,如果输出仍未生成,

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

framework: "jasmine2",
onPrepare: function() {
    var jasmineReporters = require('jasmine-reporters');
.......
}
于 2015-06-24T12:18:17.280 回答