How to Modulate Jasmine Report XML Reports in Protractor

I use jasmine reporters to generate XML reports for my Protractor tests. But the problem I am facing is that all XML reports are saved in only one place. I have various files that are testing another module, and I want the XML report to be stored in a separate folder corresponding to each test file, but I have no way to hack it.

My conf.js

specs: ['testFile1.js',
        'testFile2.js',
        'testFile3.js'
],

onPrepare: function () {
    require('jasmine-reporters');

    jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('JUnit XML Report/', true, true));
  }
+4
source share
1 answer

Try something like this. You will want to change the creation of folders to suit your needs.

onPrepare: function () {
        require('jasmine-reporters');
        var fs = require('fs');
        var Q = require('q');

        var mkdir = Q.denodeify(fs.mkdir);
        mkdir('test/test-results')
            .then(function(data) {
                mkdir('test/test-results/protractor')
                    .then(function(data) {
                        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 jasmine.JUnitXmlReporter('test/test-results/protractor/', true, true, prePendStr));
                        });
                    })
                    .fail(function(err) {
                        console.err('Error creating directory ' + err);
                    })
            })
            .fail(function(err) {
                console.err('Error creating directory ' + err);
            });
    },
0
source

All Articles