我使用Protractor配置文件运行多个规范,如下所示:
...
specs: [abc.js , xyz.js]
...
abc.js
完成后,我想将我的应用重置为初始状态,下一个规范xyz.js
可以启动。
在量角器中是否有明确定义的方法?我正在使用Jasmine作为测试框架。
答案 0 :(得分:3)
你可以使用这样的东西:
specs: ['*.js']
但我建议您将规格与后缀分开,例如abc-spec.js
和xyz-spec.js
。因此,您的规格将如下:
specs: ['*-spec.js']
如果您将配置文件放在与test / spec文件相同的文件夹中,则可以避免配置文件运行&测试。
此外,还有一个缺点是测试将以0 -> 9
和A -> Z
顺序运行。例如。 abc-spec.js
将首先运行xyz-spec.js
。如果您想定义自定义执行订单,可以在规范文件前加上'名称,例如:00-xyz-spec.js
和01-abc-spec.js
。
要重新启动应用,遗憾的是没有常见的方式(source),但您需要努力实现它。使用像
这样的东西browser.get('http://localhost:3030/');
browser.waitForAngular();
每当您需要重新加载应用时。它将强制重新加载页面。但是,如果您的应用使用cookie
,则还需要清除它以使其完全重置。
答案 1 :(得分:1)
我使用了不同的方法,它对我有用。在我的第一个规范中,我添加了Logout测试用例,从应用程序注销并到达登录页面,只需在使用以下内容再次登录之前清除cookie:
browser.driver.manage().deleteAllCookies();
答案 2 :(得分:0)
也可以在配置文件中指定名为restartBrowserBetweenTests
的标志。然而,这伴随着量角器团队的有效警告:
//如果[设置为]为true,量角器将在每次测试之间重新启动浏览器 // 注意:这会导致您的测试大幅减慢。
如果速度惩罚无关紧要,这可能会有所帮助。
如果以上内容没有帮助,并且您绝对想要确保应用程序(和浏览器!)的状态在规范之间是干净的,那么您需要推出自己的shellcript来收集所有*_spec.js
文件和电话protractor --specs [currentSpec from a spec list/test suite]
。