Angularjs JasmineReporters JUnitXmlReporter未写入文件

Angularjs JasmineReporters JUnitXmlReporter未写入文件,angularjs,jasmine,protractor,Angularjs,Jasmine,Protractor,我用webdriver运行了量角器测试。测试运行,但是jasmine reporter没有编写输出文件 量角器_conf.js: exports.config = { // Do not start a Selenium Standalone sever - only run this using chrome. //chromeOnly: true, //chromeDriver: '../node_modules/protractor/selenium/chromed

我用webdriver运行了量角器测试。测试运行,但是jasmine reporter没有编写输出文件

量角器_conf.js:

exports.config = {
    // Do not start a Selenium Standalone sever - only run this using chrome.
    //chromeOnly: true,
    //chromeDriver: '../node_modules/protractor/selenium/chromedriver',

    //we are using a standalone selenium server so give it the local address
    seleniumAddress: 'http://0.0.0.0:4444/wd/hub',
    //seleniumPort: 4444,
    //seleniumServerJar: './selenium-server-standalone-2.42.2.jar',


    // Capabilities to be passed to the webdriver instance.
    capabilities: {
        'browserName': 'chrome'
    },

    baseUrl: 'http://localhost:8000',

    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('test/test-results/protractor', true, true, prePendStr));
        });
    },

    specs: ['test/protractor/**/*-spec.js'],

    // Options to be passed to Jasmine-node.
    jasmineNodeOpts: {
        showColors: true,
        isVerbose: true,
        defaultTimeoutInterval: 30000
    },

    params: {
        env: 'development',
        homepageUrl: 'http://localhost:9000'
    }
};
测试输出:

/usr/local/bin/node --debug-brk=60603 --nolazy node_modules/protractor/lib/cli.js protractor_conf-dev.js
debugger listening on port 60603
Using the selenium server at http://0.0.0.0:4444/wd/hub
E2E: verify main page loads and correct items are there
  when the main page loads, the content should be available - pass


Finished in 0.727 seconds
1 test, 1 assertion, 0 failures


Process finished with exit code 0

看起来很像你在尝试结合茉莉花-reporters@2.0.0带量角器。量角器目前支持Jasmine 1.x,而不是Jasmine 2.x。我怀疑你想使用jasmine reporters的
~1.0.0
。看起来您还试图将jasmine reporters 1.x语法与2.x reporters结合起来

  • 看起来您正在使用2.0.0,因为
    var jasmineReporters=require('jasmine-reporters')
    新的jasminereporter.JUnitXmlReporter(/*…*/)
    
    • jasmine reporters 1.x没有
      index.js
      ,也没有导出任何内容,因此您应该得到
      TypeError:undefined不是一个函数,如果使用1.x reporters尝试上述代码
  • 看起来您正在将1.x语法与2.x报告程序相结合,因为2.x JUnitXmlReporter需要的是配置对象,而不是有序参数
如果您使用的是jasmine reporters 1.x,那么您的代码应该更像这样:

require('jasmine-reporters');
jasmine.getEnv().addReporter(
    new jasmine.JUnitXmlReporter('test/test-results/protractor', true, true, prePendStr)
);

是的,我的package.json中有“jasmine reporters”:“^2.0.0”。将其更改为较低版本,并将代码放回您在jasmine 2.x中引用的代码(由于版本的原因,在new jasmine.JUnitXmlReport中失败),需要进行的修改是-
var jasmineReporter=require('jasmine-reporters');jasmine.getEnv().addReporter(新的jasmineReporter.JUnitXmlReporter('test/test results/dragrator',true,true,prePendStr))@RahulVig很接近,但jasmine reporters 2.x不再使用有序参数。因此,最后一位需要是
newjasminereporter.JUnitXmlReporter({savePath:'test/testresults/dragrator',filePrefix:prePendStr})--默认情况下,useDotNotation和consolidate都为true。