我正在为我们的(RoR 2.3.5)网站修复一些旧的集成测试,一些场景(及其行为)依赖于多个用户同时登录。曾几何时,这些工作......三个工程师和 18 个月前。
我们的基本场景是用黄瓜编写的,水豚与硒结合。我已经尝试了所有我能想象到的 Capybara::Session.new 和 open_session 变体。这些要么以编程方式成功,但继续使用现有的 selenium 窗口;或者,它们导致某些测试方法不存在。
我也尝试使用 webrat 进行“次要”会话,但无法说服 cucumber 在场景中为单个步骤切换驱动程序(尽管它确实在场景之间切换)。
我完全在众所周知的小溪上吗?selenium 以多个 unix 用户的身份打开多个浏览器,这样他们就不会共享会话状态,然后登录到网站,这真是太棒了。但是,我什至不知道从哪里开始破解它。
老实说,在这一点上,我什至不知道我在使用什么工具,以及哪个工具负责什么功能。深入研究 capybara 和 cucumber 的代码会产生数百行元编程魔法,这些魔法以某种方式融入到测试框架中。尽管我以前年轻时充满热情,但这真的让我厌恶 TDD。