我有一个手动引导的Angular应用程序,其中编写了大量的Protractor测试。 2016年6月左右,测试工作正常,但不再适用。从那时起,发生了以下变化:
如果我在登录之后没有与应用程序交互,并且运行单个测试(例如"期望(true).toBe(true)"),那么一切都会运行完成,没有生成错误消息。
如果我的测试自动化确实与应用程序交互,则会发生以下情况:
在任何一种情况下,自动化都会通过登录进入应用程序的Angular1部分。
我的问题是:
编辑2016年10月27日 收到这个问题的第一个答案后,我试图准确确定失败的原因,以及在哪里。
我发现:
这些附加信息是否可以进一步了解可能发生的事情以及我可能尝试的其他方法?
答案 0 :(得分:2)
首先,您需要确保使用最新的量角器(4.0.9)和zone.js
> = 0.6.25。
然后,请确保为包含混合角1 + 2应用的每个页面设置browser.ng12Hybrid
为true
,即:
beforeEach(function () {
browser.ng12Hybrid = true;
browser.get('/somepage.html');
});
afterEach(function () {
browser.ng12Hybrid = false;
});
您还可以在protractor's own test specs中找到示例。
至于useAllAngular2AppRoots: true
,只有在您的应用完全迁移到Angular 2并且您已移除升级适配器后才能使用它,如here所述。
祝你的项目好运!