FarazShuja
FarazShuja

Reputation: 2370

how to switching off stack failure message?

While running a test suit, when something fails it also show the stack message like this

Failures:
1) Should validate labels
    Message: 
      Failed: No element found using locator: By.cssSelector(".container h1")
    Stack:
      NoSuchElementError: No element found .........................
      .........
     ......
      ....

can we switch off this stack output? I have tried

protractor conf.js --no-stackTrace

also updated conf.js file with settings

stackTrace: false,
  // Options to be passed to Jasmine.
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000,
    includeStackTrace: false,
  }

but its always showing stack output, how to fix it?

Upvotes: 4

Views: 1949

Answers (4)

Craig Rodrigues
Craig Rodrigues

Reputation: 821

includeStackTrace was removed in https://github.com/angular/protractor/commit/bf5b076cb8897d844c25baa91c263a12c61e3ab3 so the previous answers did not work for me.

The jasmine-spec-reporter has changed and no longer has a protractor-configuration.md file, so that advice no longer worked for me either.

However, despite the lack of a protractor-configuration.md file, I did find that jasmine-spec-reporter had the working solution for me. I found that using the jasmine-spec-reporter in this way with Protractor 5.2.0 in my config file:

setup = function() {

    var jasmineReporters = require('jasmine-reporters');

    jasmine.getEnv().addReporter(new jasmineReporters.TerminalReporter({
         verbosity: 3,
         color: true,
         showStack: false }));
}

exports.config = {
    onPrepare: setup

};

The key was to change the stackTrace parameter to false in the TerminalReporter

Upvotes: 0

Tash
Tash

Reputation: 196

An elegant solution that I found was located on the protractor github at https://github.com/bcaudan/jasmine-spec-reporter/blob/master/docs/protractor-configuration.md

You can modify your jasmineNodeOpts like so

jasmineNodeOpts: {
   ...
   print: function() {}
}

And that took care of the problem for me

Upvotes: 2

alecxe
alecxe

Reputation: 473903

If you are using and old protractor (<=1.4 I think), setting both isVerbose and includeStackTrace to false would work for you:

jasmineNodeOpts: {
  isVerbose: false,
  includeStackTrace: false
}

Unfortunately, nowadays isVerbose or includeStackTrace would not be recognized in jasmineNodeOpts (explanation here):

Similar to jasmine 1.3, you may include jasmineNodeOpts in the config file. However, because we changed the runner from "https://github.com/juliemr/minijasminenode" to "https://github.com/jasmine/jasmine-npm", the options have changed slightly. Notably options print and grep are new, but we will no longer support options isVerbose and includeStackTrace (unless, of course, "jasmine-npm" introduces these options).

See also:

Upvotes: 3

John Stennett
John Stennett

Reputation: 546

I was successfully able to disable the Stacktraces in my test suite using the following setup in my "conf.js" file:

    ...

    framework: 'jasmine',

    // Options to be passed to Jasmine-node.
    jasmineNodeOpts: {
        // If true, display spec names.
        isVerbose : false,

        // Use colors in the command line report.
        showColors: true,

        // If true, include stack traces in failures.
        includeStackTrace : false,

        // Default time to wait in ms before a test fails.
        defaultTimeoutInterval: 60000,

        // If true, print timestamps for failures
        showTiming: true,

        // Print failures in real time.
        realtimeFailure: true
    }

    ...

I found this GitHub issue (https://github.com/angular/protractor/issues/696) useful with this question. Setting both the "isVerbose" and "includeStackTrace" flags to 'false' worked for me.

Upvotes: 1

Related Questions