Как запустить тест PHPUnit Selenium без запуска нового окна браузера для каждой функции?
========================================================================================

Я пытаюсь запустить тестовый селен с помощью PHPUnit. И первое, что я делаю, это пробую функцию входа в систему, она прекрасно работает, но затем я хочу запустить функцию проверки информации на странице, следующей за входом в систему, но она открывает новый браузер вместо продолжения в текущем окне браузера. Причина в том, что это проблема, потому что страница настроена на удаление аутентификации при входе в систему, когда окно закрыто, поэтому, если вы используете $ this->url () для перехода на страницу выдает ошибку, которая мне необходима для входа. Это мой код прямо сейчас, он запускает браузер и запускает функцию для проверки формы входа, затем закрывает браузер, открывает новый и запускает проверку ссылки. Это, конечно, приводит к ошибке из-за ошибки аутентификации, потому что окно было закрыто. Я мог бы запустить все тесты в одной функции, но это действительно неаккуратное кодирование, и я хочу избежать этого. Кто-нибудь знает, как это решить?

Итак, я думаю, вы можете просто вызвать функцию непосредственно из другой функции, например так:

и так далее, это просто запустит следующую функцию без нового браузера, однако, если она потерпит неудачу где-либо в любом тесте, весь тест будет остановлен, поэтому обратная связь не будет так же хороша, как отдельные тесты.



Поделиться сеансами браузера в`Selenium2TestCase`, вы должны установить`sessionStrategy => 'shared'` в вашей первоначальной настройке браузера:

Альтернатива (по умолчанию).`'isolated'`



сделайте активы в одной функции, потому что это функциональный тест. я новичок в phpunit и селене, но я успешно проверил все в одном, как это:



Вы можете вызвать PHPUnit\_Extensions\_SeleniumTestCase :: shareSession (true), чтобы включить повторное использование окна браузера.

в[руководство](https://phpunit.de/manual/3.7/en/selenium.html) это говорит:

В Selenium 1.1.1 включена экспериментальная функция, позволяющая пользователю разделить сеанс между тестами. Единственный поддерживаемый случай - это совместное использование сеанса между всеми тестами, когда используется один браузер. Вызовите PHPUnit\_Extensions\_SeleniumTestCase :: shareSession (true) в файле начальной загрузки, чтобы включить общий доступ к сеансу. Сеанс будет сброшен в случае неуспешных тестов (неудачных или неполных); пользователь должен избегать взаимодействия между тестами путем сброса файлов cookie или выхода из тестируемого приложения (с помощью метода tearDown ()).



Элегантный способ установить общий сеанс - использовать PHPUnit`setUpBeforeClass()` метод: