angularjs 量角器 3.3.0 未报告规格
angularjs protractor 3.3.0 not reporting specs
我没有看到通过的 运行 的预期输出,断言未列出。我希望看到这一行中的断言“1 spec, 0 failures”。
输出:
[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/#/ "Run the test"):
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.repeater 定位器有效:
element.all(by.repeater('page in adminClient.selectedSite.pages')).count()
.then(function(count){
console.log('page count: ' + count);
});
[更新] 根据这个 SO,这是一个版本问题,有人建议在 onPrepare 挂钩上注入 jasmine 记者,但这对我造成了更多 运行 时间错误。
我的量角器配置:
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
标志传递给量角器。如果你正在使用 g运行t 或其他东西到 运行 量角器,你需要在你的配置中指定这个标志。
编辑
阅读您的编辑后,我相信我已经找到了解决您问题的方法。我已经在我自己的一个项目中尝试过它,它似乎有效。
潜在的问题是您可能正在使用量角器 3,它不再支持许多以前的选项,尤其是在 jasmineNodeOpts
中。要解决此问题,您应该将量角器的版本降级到 2,最新版本是 2.5.1
Here's the related issue on protractor's github repository。它还在 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}));
}
我没有看到通过的 运行 的预期输出,断言未列出。我希望看到这一行中的断言“1 spec, 0 failures”。
输出:
[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/#/ "Run the test"):
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.repeater 定位器有效:
element.all(by.repeater('page in adminClient.selectedSite.pages')).count()
.then(function(count){
console.log('page count: ' + count);
});
[更新] 根据这个 SO,这是一个版本问题,有人建议在 onPrepare 挂钩上注入 jasmine 记者,但这对我造成了更多 运行 时间错误。
我的量角器配置:
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
标志传递给量角器。如果你正在使用 g运行t 或其他东西到 运行 量角器,你需要在你的配置中指定这个标志。
编辑 阅读您的编辑后,我相信我已经找到了解决您问题的方法。我已经在我自己的一个项目中尝试过它,它似乎有效。
潜在的问题是您可能正在使用量角器 3,它不再支持许多以前的选项,尤其是在 jasmineNodeOpts
中。要解决此问题,您应该将量角器的版本降级到 2,最新版本是 2.5.1
Here's the related issue on protractor's github repository。它还在 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}));
}