我正在为我们的(RoR 2.3.5)网站修复一些旧的集成测试,一些场景(及其行为)取决于多个用户同时登录。曾几何时,这些工作......三位工程师和18个月前。
我们的基本情景用黄瓜写成,水豚与硒结合。我已经尝试了Capybara :: Session.new和open_session的所有变化,我可以想象。这些要么以编程方式成功,而是继续使用现有的硒窗口;或者,它们导致一些测试方法不存在。
我也尝试过使用webrat进行“辅助”会话,但无法说服黄瓜在场景中单步切换驱动程序(尽管它确实在场景之间切换)。
我完全是众所周知的小溪吗?什么是令人敬畏的是selenium打开多个浏览器作为多个unix用户,以便他们不共享会话状态,然后登录到网站。但是,我不知道在哪里我甚至会开始攻击它。
老实说,在这一点上,我甚至不知道我正在使用什么工具,哪些工具负责哪些功能。潜入水豚和黄瓜的代码会产生数百行元编程魔法,它们会以某种方式累积到测试框架中。尽管我以前年轻的热情,但这真的让我厌恶TDD。
答案 0 :(得分:5)
尝试升级到0.4.0.rc. Selenium现在允许多个sesssions(这将启动多个浏览器,只是你知道)。但是它仍然没有高级API,所以你必须手动实例化一个会话并使用它。