我的业力赛跑者让我很困惑。有些测试运行得很好,但其他看似相似但没有。
这有效:
it('should display an error when accessing /business-user without authentication', function() {
browser().navigateTo('../business-user');
expect(element('p#flash').text()).toBe('You must be logged in to access that page.');
});
这不是:
it('should take the user to the index lander upon logout', function() {
browser().navigateTo('../business-user/login');
input('username').enter('matt');
input('password').enter('letmein');
element('input:last').click();
element('a#logout').click();
expect(browser().window().path()).toBe('/');
});
运行显示的测试给出了一个错误,指出无法找到#logout。我暂停跑步者验证#logout在那里,而且确实如此。当我恢复时,我得到“TypeError:无法调用方法'调用'未定义'错误。
我认为应该定义的对象是元素,但为什么不能说它找不到元素呢?更重要的是,为什么不能在一开始就找到它?
强制性的karma-e2e.conf.js转储:
// Karma configuration
// Generated on Tue Aug 20 2013 17:01:18 GMT-0600 (MDT)
module.exports = function(config) {
config.set({
basePath: '../..',
frameworks: ['ng-scenario'],
files: [
'test/e2e/*.js'
],
exclude: [
],
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: ['Chrome'],
captureTimeout: 60000,
singleRun: true,
proxies: {
'/': 'http://localhost:3000/'
},
urlRoot: '/_karma_/'
});
};
有什么想法吗?