jasmine reporters没有生成任何文件

jasmine reporters没有生成任何文件,jasmine,protractor,jasmine-node,Jasmine,Protractor,Jasmine Node,我用jasmine reporters在量角器完成测试后生成报告 这是我的配置文件: onPrepare: function(){ var jasmineReporters = require('jasmine-reporters'); var capsPromise = browser.getCapabilities(); capsPromise.then(function(caps){

我用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));
            });
     },
我没有收到任何错误,安装了reporters,但我在量角器输出文件夹中没有看到任何文件


知道我做错了什么吗?

问题在于jamsine版本:

如果您试图将jasmine reporters与量角器一起使用,请记住量角器是围绕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目录是否存在问题在于jamsine版本:

如果您试图将jasmine reporters与量角器一起使用,请记住量角器是围绕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目录是否存在

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

尝试将以下配置行添加到量角器导出.config对象:

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

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

尝试将以下配置行添加到量角器导出.config对象:

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

你试过新的jasmine.JUnitXmlReporter('reports',true,true,prePendStr)吗;而不是JasmineReporter?是的,我得到:TypeError:undefined不是一个奇怪的函数,因为您稍早调用它jasmine.getEnv()。当我开始为我使用这个报告器时,它也没有写文件,当我调查mij node_modules dir中的junitXmlReporter时,我发现它没有我期望的其他人在stackoverflow上发布的参数。可能这也会导致安装中出现未标记的错误。@AndrePaap这只是意味着jasmine不包含JUnitXmlReporter出于某种原因,我试图重新安装它,但它不起作用,如果我使用JasmineReporter,我不会出错,但我在文件夹中看不到文件,我尝试了成功和失败,没有生成文件,可能我误解了。这是我的设置:require('jasmine-reporters');jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('reports',true,true));。因此,我从全局jasmine创建JunitXmlReporter,但参数较少。我使用的jasmine reports版本可以使用第四个参数。您是否尝试过新的jasmine.JUnitXmlReporter(“reports”,true,true,prePendStr);而不是JasmineReporter?是的,我得到:TypeError:undefined不是一个奇怪的函数,因为您稍早调用它jasmine.getEnv()。当我开始为我使用这个报告器时,它也没有写文件,当我调查mij node_modules dir中的junitXmlReporter时,我发现它没有我期望的其他人在stackoverflow上发布的参数。可能这也会导致安装中出现未标记的错误。@AndrePaap这只是意味着jasmine不包含JUnitXmlReporter出于某种原因,我试图重新安装它,但它不起作用,如果我使用JasmineReporter,我不会出错,但我在文件夹中看不到文件,我尝试了成功和失败,没有生成文件,可能我误解了。这是我的设置:require('jasmine-reporters');jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('reports',true,true));。因此,我从全局jasmine创建JunitXmlReporter,但参数较少。我使用的jasmine reports版本可以使用第四个参数。较新版本的jasmine reporters不再附加到jasmine对象,因此必须使用导出<代码>var jasmineReporters=require('jasmine-reporters')。。。新的jasmineReporters.JUnitXmlReporter('xmloutput',true,true)...@Snekse您应该添加这一点作为答案,并且它应该已经被接受。较新版本的jasmine reporters不再附加到jasmine对象,因此您必须使用导出<代码>var jasmineReporters=require('jasmine-reporters')。。。新的jasmineReporters.JUnitXmlReporter('xmloutput',true,true).@Snekse您应该添加这一点作为答案,并且应该是公认的答案