Как выполнить тесты phpunit на более чем 1 веб-сайте?

Я создал набор тестовых случаев, созданных с использованием phpunit и selenium, которые я выполняю на веб-сайте. Но теперь есть второй сайт, для которого я должен выполнить те же тесты. Единственное отличие — это URL для доступа к сайту.

Я пытался использовать переменную SESSION, которая устанавливается на другое значение каждый раз, когда запускается phpunit. В каждом тестовом примере я бы сослался на эту переменную SESSION, но она не работает для меня. Как мне с этим бороться? Я не хочу иметь 2 версии идентичных тестовых случаев.

Что я пробовал:

session_start();
$environments = array('www.test1.com', 'www.test2.com');
$arrlength = count($environments);

for($x = 0; $x < $arrlength; $x++) {
$_SESSION['TEST_ENVIRONMENT'] = $environments[$x]; // Set session variable = environment
phpunit -c phpunit.xml // xml file containing the testcases
unset($_SESSION['TEST_ENVIRONMENT']); //Unset only TEST_ENVIRONMENT index in session variable
}

0

Решение

Вместо переменных сеанса я предлагаю вам использовать переменные среды. Переменные среды позволяют адаптировать среду, в которой выполняется программа или скрипт.

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

Итак, давайте посмотрим на пример:

$environments = array('www.test1.com', 'www.test2.com');
foreach ($environments as $environment) {
putenv(sprintf("TEST_ENVIRONMENT=%s", $environment));
passthru('phpunit -c phpunit.xml');
}

putenv функция php используется здесь, чтобы установить TEST_ENVIRONMENT переменная окружения. Затем, когда исполняется phpunit, запускается phpunit под-оболочки в унаследованной среде PHP-скриптов.

В ваших тестах, когда вам нужно получить доступ к этому TEST_ENVIRONMENT переменная окружения, вы можете сделать это затем с

getenv("TEST_ENVIRONMENT");

или же

$_ENV["TEST_ENVIRONMENT"];

Как видите, нет необходимости начинать сеанс и т. Д., И доступ к нему довольно прост.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]