清理在Protractor中串行运行spec文件

时间:2015-03-10 08:17:39

标签: protractor end-to-end

我使用Protractor配置文件运行多个规范,如下所示:

...
specs: [abc.js , xyz.js]
...

abc.js完成后,我想将我的应用重置为初始状态,下一个规范xyz.js可以启动。

在量角器中是否有明确定义的方法?我正在使用Jasmine作为测试框架。

3 个答案:

答案 0 :(得分:3)

可以使用这样的东西:

specs: ['*.js']

但我建议您将规格与后缀分开,例如abc-spec.jsxyz-spec.js。因此,您的规格将如下:

specs: ['*-spec.js']

如果您将配置文件放在与test / spec文件相同的文件夹中,则可以避免配置文件运行&测试。

此外,还有一个缺点是测试将以0 -> 9A -> Z顺序运行。例如。 abc-spec.js将首先运行xyz-spec.js。如果您想定义自定义执行订单,可以在规范文件前加上'名称,例如:00-xyz-spec.js01-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]