对于通过的运行,我没有看到预期的输出,断言没有列出。我希望在这一行看到断言"1个规范,0个失败"。
输出: [18:28:06] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[18:28:06] I/launcher - Running 1 instances of WebDriver
Started
.
1 spec, 0 failures
Finished in 0.854 seconds
[18:28:08] I/launcher - 0 instance(s) of WebDriver still running
[18:28:08] I/launcher - chrome #01 passed
在量角器网站上看到的运行输出的预期结束,http://www.protractortest.org/#/"运行测试"):
1 test, 3 assertions, 0 failures
规范:
describe('Viewing index.html', function() {
'use strict';
beforeEach(function(){
browser.get('/');
});
it('should have pages in left nav', function() {
expect(element.all(by.repeater('page in adminClient.selectedSite.pages')).count()).toBeGreaterThan(0);
});
});
我验证了by。中继器定位器工作:
element.all(by.repeater('page in adminClient.selectedSite.pages')).count()
.then(function(count){
console.log('page count: ' + count);
});
[UPDATE]根据这个SO,这是一个版本问题,建议在onPrepare钩子上注入茉莉花报告器,但这为我创造了更多的运行时错误。栈溢出问题
My protractor config:
exports.config = {
allScriptsTimeout: 11000,
chromeOnly: true,
chromeDriver: 'node_modules/protractor/bin/selenium/chromedriver_2.21',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['tests/e2e/*-spec.js'],
capabilities: {
'browserName': 'chrome'
},
baseUrl: 'http://localhost:8889/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
要查看规范名称和断言,必须将--verbose
标志传递给量角器。如果你使用grunt或其他工具来运行量角器,你需要在你的配置中指定这个标志。
编辑看了你的编辑,我相信我已经找到了解决你问题的办法。我已经在我自己的项目中尝试过了,它似乎有效。
潜在的问题是您可能正在使用量角器3,它不再支持许多以前的选项,特别是在jasmineNodeOpts
中。要纠正这个问题,您应该将量角器的版本降级到2,最新版本是2.5.1
下面是protractor的github库的相关问题。它还提到了onPrepare钩子中的自定义报告器,就像你所说的那样,但是是不同的:jasmine-spec-reporter
。我得到的工作以及与您使用的稍微不同的配置,但它不显示断言,只是有一个更好的输出测试,我很喜欢:
jasmineNodeOpts: {
print: function () {} // remove dots for each test
},
onPrepare: function () {
var SpecReporter = require('jasmine-spec-reporter');
jasmine.getEnv().addReporter(new SpecReporter({displayStackTrace: true}));
}