Angular 测试因 ng e2e 失败,但使用量角器 conf.js 通过
Posted
技术标签:
【中文标题】Angular 测试因 ng e2e 失败,但使用量角器 conf.js 通过【英文标题】:Angular tests fails with ng e2e but pass with protractor conf.js 【发布时间】:2020-04-02 06:57:44 【问题描述】:在为 Angular 应用程序进行测试自动化时,我遇到了一个问题,即每当我尝试使用 Angular 命令ng e2e
运行测试套件时,所有测试都会失败。量角器命令protractor conf.js
通过了相同的测试。我想问一下这种奇怪行为的原因。提供了规范。
谢谢
import AddMemberClass from '../../pages/add-member/add-member.page';
import LoginPage from '../../pages/login/login.page';
import browser, promise, by from 'protractor';
fdescribe('Add Member as Admin',()=>
let addMemeber: AddMemberClass;
let login : LoginPage;
beforeAll(()=>
login = new LoginPage();
addMemeber = new AddMemberClass();
return new Promise((resolve)=>
login.navigateTo().then(()=>
login.getEmailInput().sendKeys('something@gmail.com');
login.getPasswordInput().sendKeys('13235');
login.getLoginButton().click().then(()=>
setTimeout(()=>
expect(browser.getCurrentUrl()).toContain('organization').then(()=>
resolve();
);
,30000);
);
);
);
);
it('should login successfully', ()=>
return addMemeber.getMemberMenu().click().then(()=>
console.log('test1');
return addMemeber.getAddMemberSubMenu().click().then(()=>
console.log('inside test 1');
return new Promise((resolve)=>
setTimeout(()=>
expect(browser.getCurrentUrl()).toContain('directregistration').then(()=>
resolve();
);
,30000)
)
)
)
);
it('should check member Menu on main page',()=>
return new Promise((resolve,reject)=>
setTimeout(()=>
console.log('Inside test 2 timeout');
expect(addMemeber.getMemberMenu().isPresent()).toBe(true);
resolve();
,5000)
);
);
)
);
【问题讨论】:
如果您向我们提供准确的错误信息,那就太好了 问题是你的 setTimeout 和 Promises。这不是应该做的:) @LuninRoman 错误是 jasmine.DEFAULT_TIMEOUT @PierreDuc 你能解释一下吗?将不胜感激 @Analyst 我建议你看看angular.io/guide/testing。你应该使用async
。您收到错误是因为默认超时远小于您希望测试等待的 30 秒。
【参考方案1】:
我面临的问题是 ng e2e
它首先服务于应用程序,然后运行 e2e 测试用例。运行命令 protractor conf.js,它没有被提供,产生问题并且所有测试用例都失败
【讨论】:
以上是关于Angular 测试因 ng e2e 失败,但使用量角器 conf.js 通过的主要内容,如果未能解决你的问题,请参考以下文章
如何使用“ng e2e”对节点服务器而不是 webpack-dev-server 运行量角器测试
markdown Angular CLI:ng lint,ng test,ng e2e