在运行测试套装时,当某些内容失败时,它也会显示堆栈消息,如此
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,
}
但它总是显示堆栈输出,如何修复它?
答案 0 :(得分:3)
如果您正在使用旧的量角器(我认为< = 1.4),将isVerbose
和includeStackTrace
设置为false
对您有用:
jasmineNodeOpts: {
isVerbose: false,
includeStackTrace: false
}
不幸的是,现在isVerbose
或includeStackTrace
无法在jasmineNodeOpts
中识别(解释here):
与jasmine 1.3类似,您可以在配置中包含
jasmineNodeOpts
文件。但是,因为我们改变了跑步者 “https://github.com/juliemr/minijasminenode”来 “https://github.com/jasmine/jasmine-npm”,选项已经改变 略。值得注意的是,选项grep
是新的,但我们不会 更长的支持选项isVerbose
和includeStackTrace
(除非 当然,“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