在另一个文件中调用jasmine测试会导致超时

时间:2017-07-20 10:38:13

标签: javascript angular jasmine protractor

我想为登录/访客用户测试我的应用程序。

我发现自己多次模拟登录/注销,因此我将相应的测试代码(包括对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();
    });
});




我是茉莉的新手,我不知道如何解决这个问题,我已经试图解决这个问题好几天了,我不知道该怎么做。

1 个答案:

答案 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,
},

我在上面附上的链接中详细讨论了这个问题。请阅读它以获得更清晰的信息。