如何关闭堆栈失败消息?

时间:2015-09-16 10:40:49

标签: jasmine protractor

在运行测试套装时,当某些内容失败时,它也会显示堆栈消息,如此

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

我们可以关掉这个堆栈输出吗?我试过了

protractor conf.js --no-stackTrace

还使用设置

更新了conf.js文件
stackTrace: false,
  // Options to be passed to Jasmine.
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000,
    includeStackTrace: false,
  }

但它总是显示堆栈输出,如何修复它?

4 个答案:

答案 0 :(得分:3)

如果您正在使用旧的量角器(我认为< = 1.4),将isVerboseincludeStackTrace设置为false对您有用:

jasmineNodeOpts: {
  isVerbose: false,
  includeStackTrace: false
}

不幸的是,现在isVerboseincludeStackTrace无法在jasmineNodeOpts中识别(解释here):

  

与jasmine 1.3类似,您可以在配置中包含jasmineNodeOpts   文件。但是,因为我们改变了跑步者   “https://github.com/juliemr/minijasminenode”来   “https://github.com/jasmine/jasmine-npm”,选项已经改变   略。值得注意的是,选项printgrep是新的,但我们不会   更长的支持选项isVerboseincludeStackTrace(除非   当然,“jasmine-npm”介绍了这些选项。)

另见:

答案 1 :(得分:1)

我已经成功地在我的测试套件中禁用了Stacktraces,使用了我的" conf.js"文件:

    ...

    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
    }

    ...

我发现此GitHub问题(https://github.com/angular/protractor/issues/696)对此问题很有用。同时设置" isVerbose"和#34; includeStackTrace"标记为' false'为我工作。

答案 2 :(得分:1)

我发现一个优雅的解决方案位于https://github.com/bcaudan/jasmine-spec-reporter/blob/master/docs/protractor-configuration.md

的量角器github上

你可以像这样修改你的jasmineNodeOpts

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

这就解决了我的问题

答案 3 :(得分:0)

includeStackTrace已在https://github.com/angular/protractor/commit/bf5b076cb8897d844c25baa91c263a12c61e3ab3中移除 所以以前的答案对我不起作用。

jasmine-spec-reporter已更改,不再有protractor-configuration.md文件,因此该建议对我来说也不再适用。

然而,尽管缺少protractor-configuration.md文件,我确实发现jasmine-spec-reporter有适合我的工作解决方案。 我发现在我的配置文件中以这种方式使用jasmine-spec-reporter和Protractor 5.2.0:

setup = function() {

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

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

exports.config = {
    onPrepare: setup

};

关键是在stackTrace

中将TerminalReporter参数更改为false