将旧项目升级到capybara

问题描述:

我们现在正在与Ruby,Cucumber和Selenium一起执行我们的集成测试。将旧项目升级到capybara

现在我们想提高我们的测试质量,因此我们想要使用水豚。

现在由于我们所有的方法都需要重写,所以我们认为也许有人已经这样做了,并且为Capybara做这项工作的selenium webdriver写了一个封装。

例如:

的包装应替换以下:

driver.navigate_to "/home" 

喜欢的东西

visit "/home" 

的一点是,我们不想将改写我们的所有代码,因为我看来的功能是相同的,编写驱动程序的包装程序并不是那么困难,这会自动完成。意思是:navigate_to方法只是调用访问方法,我很高兴。

我必须自己写这个,还是已经完成了?

非常感谢!

+1

我不认为这存在,你应该重写你的方法。 – MSathieu

不,现有的包装没有。

你似乎错过了这个事实,水豚本身就是一个围绕硒-webdriver的包装,所以你要求一个围绕硒包装硒的兼容包装。再加上这样一个事实,即如果你所做的只是用水豚命令来模拟你现有的硒命令,你将不会从水豚中获得任何东西,所以它毫无意义。听起来你的团队会更好地离开现有测试,使用Capybara编写所有新测试,而现有测试需要更改/维护重写它们以使用Capybara内置的等待/重试和更友好的API。

+0

我已经理解了,但它不会改变我的问题,即我有很多旧的测试,我不想重写。也就是说,我已经写过,确切的问题。 Navigate_to和访问做同样的事情,只是访问更好。 – MJohnyJ

+0

@MJohnyJ'' visit''实际上并不比''navigate'好,当水豚和Selenium一起使用时,它只是归结为'def visit(path) browser.navigate.to(path) end'正如我在回答中所述,不要重写当前的测试,直到他们需要改变,并开始使用Capybara写新的测试。 –

+0

事情是,他们必须改变。许多测试随机失败。为了对抗这种行为,过去我们增加了延误,许多人等到了。 这些放慢了测试速度,仍然随机测试失败。我们希望用Capybara解决这个问题,但是因为我们正在谈论2000行代码,所以必须找到另一个修补程序 – MJohnyJ