我想为登录/访客用户测试我的应用程序。
我发现自己多次模拟登录/注销,因此我将相应的测试代码(包括对it()
和expect()
的相关调用)放在单独的页面对象文件(login.po.ts
)中
我的angular2 e2e测试文件如下所示:
// ...
it('should navigate to /some-page', () =>
{
// ...tests performed as guest user
});
it('should login', () =>
{
// Login
login.testLogin();
});
it('should perform tests as logged in user', () =>
{
// ...tests performed as logged in user
});

每当我调用登录测试例程时,它们都会正确执行。然而,茉莉花暂停,即使它不应该;它等待5秒然后报告超时!
登录测试功能如下所示:
this.page.navigateTo('/account/login').then(() =>
{
const userName = 'some@user.com';
const password = 'Pass123456!';
this.page.sendKeys('input[name="username"]', userName, true);
this.page.sendKeys('input[name="password"]', password, true);
this.page.submit('form[name="form"]').then(() =>
{
expect(this.page.getElement('a#logout')).toBeTruthy();
});
});

我是茉莉的新手,我不知道如何解决这个问题,我已经试图解决这个问题好几天了,我不知道该怎么做。
答案 0 :(得分:0)
您的问题陈述应包含确切的错误消息,以便于调试。请参阅there are a lot of reasons了解Protractor中的超时。
如果您的错误是由于您的规范花费的时间超过了Jasmine超时,那么您可以指定Jasmine使用jasmineNodeOpts
文件中的conf.js
等待更长时间。
例如,您可以使用此
将Jasmine规范设置为等待超过指定的超时时间 exports.config={
framework:'jasmine',
]
seleniumAddress:"http://localhost:4444/wd/hub",
jasmineNodeOpts:{
defaultTimeoutInterval: 500000,
},
我在上面附上的链接中详细讨论了这个问题。请阅读它以获得更清晰的信息。