Подтвердить что ты не робот

Как написать функциональные тесты для веб-приложения Yii, которые будут запущены на сервере селена?

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

Я прочитал эту заметку и выяснил, что селен имеет что-то вроде html suite. Я никогда не слышал об этом раньше, я всегда писал свои тесты для запуска через PHPUnit. Я использовал стандартную функциональную тестовую среду Yii как описано здесь.

Итак, мой вопрос: каковы плюсы и минусы обоих подходов? Я уже могу подумать об одном про и con html suite. Pro - это то, что написание тестов очень просто - вы просто "click" их в Selenium IDE. Кон, что я, вероятно, придется запускать db-приборы перед тестированием, и я не мог их изменить, или запускать их как: - загрузить приборы, запустить тест, загрузить оснастку, запустить тест, но я думаю, что это сделало бы тесты sloppier. Как вы думаете, каков ваш опыт в этом вопросе?

4b9b3361

Ответ 1

существует простой способ для написания функциональных тестов. вы можете downlaod addon для selenium IDE, а затем добавить php formatter для этого аддона, и вы можете делать и экспортировать функциональные тесты очень eeeasy.

тогда вы должны настроить защищенные /config/test.php и protected/tests/bootstrap.php

вам следует, вероятно, отредактировать protected/tests/phpunit.xml и удалить любой браузер, кроме fire fox.

тогда сделайте так, как сказал Виллем Рензема, и измените тест, сделанный этим аддоном, и измените имя класса на WebTestCase и удалите setUp()

тогда вы готовы к запуску тестов!

веселит

Ответ 2

Два пакета, которые хорошо интегрированы с Yii, - PhPUnit и Selenium Remote Control. Таким образом, эти два более распространены между разработчиками Yii.

Что касается развертывания функционального теста, я не уверен, насколько глубоко вы хотите идти, но насколько я его использовал, это было довольно легко. Функциональные тесты - это буквально классы php, которые распространяются от CWebTestCase. Описание класса Yii CWebTestCase

Соглашение об именах - вы должны называть вас классом, заканчивающимся Test, например ExampleTest.php, и хранить файлы под защитой /test/functional. Вам нужно настроить все, включая оба пакета, а также изменить конфигурационный файл Yii и браузер по умолчанию. Если все будет хорошо, образец теста может быть таким:

class ExampleTest extends WebTestCase
{

public function testContact()
{
    $this->open('?r=site/contact');
    $this->assertTextPresent('A string on contact page');
    $this->assertElementPresent('name=ContactForm[name]');
    $this->type('name=ContactForm[name]','tester');
    $this->type('name=ContactForm[email]','[email protected]');
    $this->type('name=ContactForm[subject]','test subject');
    $this->click("//input[@value='Submit']");
    $this->waitForTextPresent('Body cannot be blank.');
}
}

Это все, что я знал об этом, и надеюсь, что это помогло.