Я исправляю некоторые старые интеграционные тесты для нашего веб-сайта (RoR 2.3.5), и некоторые сценарии (и их поведение) зависят от одновременной регистрации нескольких пользователей. Когда-то они работали ... три инженера и 18 месяцев назад.
Наши базовые сценарии написаны на огурце с привязкой капибары к селену. Я перепробовал все варианты Capybara :: Session.new и open_session, которые я могу себе представить. Это либо программно успешно, но продолжает использовать существующее окно селена; или они приводят к тому, что какой-либо метод тестирования не существует.
Я также пытался использовать webrat для «вторичных» сессий, но не могу убедить огурца переключить драйверы на один шаг в сценарии (хотя он и переключается между сценариями).
Полностью ли я дошел до пословицы? Было бы здорово, если бы селен открыл несколько браузеров как несколько пользователей Unix, чтобы они не разделяли состояние сеанса, а затем зашел на сайт. Но я понятия не имею, куда бы я посмотрел, чтобы начать взламывать это.
Честно говоря, на данный момент, я даже не знаю, какие инструменты я использую, а какие отвечают за какую функцию. Погружение в код капибары и огурца дает сотни линий магии метапрограммирования, которые каким-то образом накапливаются в рамках тестирования. Это действительно заставляет меня ненавидеть TDD несмотря на мой предыдущий юношеский энтузиазм.