我的业力跑步者让我感到困惑。有些测试运行得很好,但其他看似相似的测试却没有。
这有效:
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:无法调用未定义的方法'invoke'”错误。
我认为应该定义的对象是元素,但为什么不说它找不到元素呢?更重要的是,为什么一开始就找不到呢?
强制性 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_/'
});
};
有任何想法吗?