可以在集成测试中的规格之间重新启动浏览器吗
Is it ok to restart browser between specs in Integration Tests?
我们为基于AngularJS的项目提供了编号或Protractor/Jastine规格。可以这样做吗:
afterAll(function(){
browser.restart();
}
清理规格之间的东西?
有一个内置设置-restartBrowserBetweenTests
:
// If true, protractor will restart the browser between each test.
// CAUTION: This will cause your tests to slow down drastically.
restartBrowserBetweenTests: false,
正如评论中所说,这会导致测试速度减慢,请确保有真正的原因在测试之间重新启动浏览器。请注意,该设置意味着使用每个it()
而不是describe()
重新启动浏览器。
请注意,内部restart()
派生现有驱动程序实例,退出当前驱动程序并重新初始化所有全局-browser
、element
、$
等。
在两次测试之间,可能需要重新启动浏览器/驱动程序,例如,以前创建的cookie将完全丢失/删除。例如,这可能允许在每次测试后不显式注销以节省时间(不确定这通常是否好)。
因此,作为一种快捷方式(直到我找不到承诺的真正问题为止),我只想在每次规范后重新启动浏览器。我知道这通常是一种错误的方法,但我想把它作为一种临时解决方案。
作为您的临时解决方案,为了强制执行测试隔离,我认为在每个测试套件之后重新启动浏览器是可以的。但是,请确保您不会通过全局可用的browser
对象共享任何变量——在每次测试中,您都会得到一个全新的browser
。
顺便说一句,你也可以尝试强制浏览器的私人/隐姓埋名模式:
multiCapabilities: [
{
browserName: "chrome",
chromeOptions: {
args: ["incognito", "disable-extensions"]
},
}
],
相关文章:
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 重新启动jquery脚本后,角度停止工作
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- preventDefault之后的重新启动事件
- WebStorm,使用Node Supervisor(因此不必在每次代码更改后重新启动)
- 重新启动游戏jQuery功能不工作
- Web服务器意外退出,正在重新启动新实例
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 重新启动画布 JavaScript
- 事件侦听器,用于完全关闭后重新启动的应用程序
- Node SocketIO以编程方式强制在损坏的套接字上重新启动
- 服务器重新启动后javascript不工作
- 当滚动到指定的位置时,启动功能,如何重置它并重新启动,如果我们再次回到这个位置
- Gulp Concat+Browsesync重新启动
- 在 javaScript 中重新启动 setInterval
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何暂停和重新启动jquery数据表插件
- 如何创建一个onclick函数,该函数在按下重新启动按钮时被调用
- 在第一次安装扩展时,使用Javascript重新启动Google Chrome
- 可以在集成测试中的规格之间重新启动浏览器吗