Меню Рубрики

Codeception установка на windows

Codeception установка на windows

Существует несколько методов установки codeception. Мы воспользуемся composer для этой цели, вы, конечно, можете выбрать любой удобный для вам метод.

Для начала перейдем в каталог куда вы хотите установить codeception и где будут храниться ваши тесты. В моем случае — app1.

Через некоторое время codeception будет скачан. После установки вы сможете использовать его в командной строке. Выполним следующую команду, чтобы проверить, что все установилось корректно:

Настройка codeception:

Следует выполнить предварительную настройку codeception. Выполните следующую команду из корневого каталога приложения (app1).

Будет создан каталог tests . В нем вы будете хранить свои тесты. Так же в нем будут подкаталоги acceptance , functional , unit . Как вы понимаете, в них будут разные типы тестов. Нам понадобится тип тестирования API, создадим его:

Итак, мы видим каталог api , в нем мы, соответственно, будем держать API тесты. Прежде чем продолжить, давайте избавимся от длинного пути vendor/bin/codeception и заменим его просто на codeception .

При работе на Линукс лучше установить codeception глобально, чтобы можно было использовать команду без полного пути к исполняемому файлу. Можно это следать следующим образом: …..какая-то сылка….

На windows просто добавьте путь к файлу в системную переменную PATH . Итак, теперь вы можете просто вызывать codeception. Попробуйте выполнить следующую команду где угодно в вашей системе:

Теперь давайте взглянем на структуру каталогов codeception.

Структура каталогов codeception

В каталоге test , который был создан в результате команды codecept bootstrap , вы увидите следующий набор директорий:

  • _data — может содержать файлы DB при необходимости.
  • _output — содержит вывод тестов и их результат.
  • _support — содержит файлы помощи к тестам.
  • acceptance — содержит приёмные тесты.
  • api — содержит API тесты. По-умолчанию отсутствует, для её создания воспользуйтесь командой generate:suite .
  • functional — содержит функциональные тесты.
  • unit — содержит юнит тесты
  • _bootstrap.php — файл для автоматической подгрузки стороних библиотек.
  • acceptance.suite.yml — настройка приёмочных тестов.
  • api.suite.yml — настройка api тестов.
  • functional.suite.yml — настройка функциональных тестов.
  • unit.suite.yml — настройка юнит тестов.

Так же в каталоге api вы найдете файл _bootstrap.php . Он используется для загрузки библиотек в пределах api тестирования.

Настройка API тестов:

Добавьте параметр PhpBrowser и Url в файл api.suite.yml :

В примере выше не допускается использование табуляции, только пробелы.

Laravel или PhpBrowser

При работе с Laravel добавляйте модуль Laravel вместо PhpBrowser . При возникновении ошибки, описание исключения (exception) будет более понятно, что нельзя сказать о PhpBrowser , где вы увидите просто ошибку 500. Раньше я работал с Laravel, но из-за того, что PhpBrowser более быстр, я переключился на него. Если на вашей машине достаточно оперативной памяти, скорость их исполнения вас не сильно волнует, а всего их до 50ти штук, то тогда можно использовать Laravel. В целом, выбор за вами.

Написание теста:

Существует два способа написания тестов, основываясь на два типа файлов. Cept и Cest . Cept строится по сценарию, а Cest на базе классов. Выбор зависит от того, как вы привыкли писать код — структурный подход или классовый. Я предпочитаю и советую использовать классовый подход, так как он дает все преимущества ООП.

Создадим первый Cest файл с помощью следующей команды:

Откройте его и добавьте код:

Переменная $I содержит ссылку на объект типа ApiTester — представление пользователя, исполняющего сценарий теста.

Выполнение теста:

До первого выполнения API теста, файл api tester отсутствует в каталоге api . Его следует создать командой:

Вы увидите ошибку если по указанному URL нет обработчика. Для более подробного вывода информации используйте ключи -vv или -vvv при выполнении теста.

Более подробную информацию о codeception вы найдете в официальной документации.

Если вас интересуют автоматическое тестирование, лучшие способы тестирования, как и зачем писать тесты я советую прочитать Тестирование в Laravel Jeffrey Way. Если вы работает с PHP, то я еще больше рекомендую прочитать эту книгу, вы, наверняка, найдете в ней много полезного.

Вы скорее всего знакомы с книгой Jeffrey Laracast, в ней описаны лучшие методы тестировании и подходы к разработке с применением тестирования.

Источник

Installing and configuring Codeception for Windows

As promised in my previous article, here’s my input on how to start with Codeception, how to install it and how to configure it. To do this, you have to perform 3 steps:

  1. Download and install XAMPP server with PHP 5.5 (You can get it from http://www.apachefriends.org/download.html). This installs PHP, Apache and MySQL for you.
  2. Set the PATH environment variable to be as the path of the PHP installation of XAMPP. Make sure to leave no spaces when you set it. You just have to add C:\xampp\php at the end of the variable value.

3. Download and move codecept.phar anywhere in your computer (from http://codeception.com/install). This will determine where Codeception will save all of your tests.

NOTE: You might also have to install Microsoft Visual C++ Redistributable, if you haven’t already done that.

That’s all you have to do to prepare your PC for the Codeception install! This will be finished once you have completed 3 more steps:

  1. Enter windows CMD window and navigate to where you moved your codecept.phar file (Type in “cd \qa” if you moved it in C:\qa – obviously, without the quotes.)
  2. Type in “php codecept.phar bootstrap” – this initializes Codeception in that folder. You should see something like this:

  1. Type in “php codecept.phar build” – this builds the test suites in that same folder. The output is this:

After doing this, you will have a new folder named “tests” added in your initial folder which contains:

  • “_output”, a folder where you will find all reports and images once you start running some tests.
  • “_data”, where you can store SQL dumps for test usage and the database cleanup feature.
  • “_support”, where you can make custom methods to use additionally to the ones already created by default.
  • Three test suites: acceptance, functional and unit. The functional and unit tests require more in-depth knowledge of PHP to be used. Therefore, we will only study acceptance tests. They offer a very wide range of testing options, so the other two aren’t really mandatory.
  • A “_bootstrap.php” file where you are able to specify paths to the files that you want to load and use in your tests. (If you wrote a function in a non-test PHP file, you can add it here, and we will explain how this works later on).
  • Configuration files for all of the three test suites (all of the .yml files).

Now drum roll required because you are about to write your first test!

  1. Configure the suite you want to use:

The default configuration uses PHP browser. Other browsers can be used, as well, but we will cover that section later.

To set the URL you want to test, open acceptance.suite.yml in any text editor (NetBeans, Aptana Studio, PhpStorm, Notepad, etc.) and change the URL line to contain your desired site. (e.g.: url: ‘http://www.gmail.com). Be careful not to change the formats in the document, .yml files are very dependent on that.

  1. Generate a new test file:

Since we’re using the acceptance suite, here’s what you have to do. To create a new test file, type “php codecept.phar generate:cept acceptance testname” in cmd, in the folder where you saved the .phar. This is where you will run all of the codeception commands. When you do this, a new testnameCept.php file will be created, containing two lines of code:

$I = new AcceptanceTester($scenario);

$I->wantTo(‘Perform actions and see results’);

You can change the scope of the text by changing the value of wantTo();

Here’s an example of how a test for logging in Gmail could look like:

$I = new AcceptanceTester($scenario);

$I->wantTo(‘Log in with Gmail’);

Enter valid data in the #Email and #Passwd fields and save the file. To run the tests type ‘php codecept.phar run acceptance’. If you want to see all of the steps of the test, simply add ‘ –steps’ at the end of the command. You can also have an HTML report generated once the test ends. To make that happen, just add “ –html” at the end of the command. You will find this report in your “_output” folder.

You can find more detailed information about acceptance testing features here.

Next week we will talk about how to test on different browsers using Selenium WebDriver!

Stay tuned and subscribe to our newsletter here.

Источник

Установка, настройка и базовое использование фреймворка для тестирования «Codeception».

Codeception — это фреймворк для тестирования php-проектов. Написан он на базе PHP Unit, про который я писал не так давно, и который использует концепцию BDD. Ну а BDD (behaviour-driven development) — это разработка, основанная на описании поведения, что облегчает написание и чтение кода тестов. Codeception значительно расширяет возможности phpUnit и используется во многих современных фреймворках.
Т.к. мир php уже давно захватил Composer, основной способ установки именно с его помощью.

Глобальная установка.

Если вы планируете использовать фреймворк Codeception для нескольких проектов, то лучше установить его глобально (не в каталог vendor текущего проекта, а в каталог vendor пользователя, откуда Composer так же подключает пакеты):
Исполняемый файл codecept.bat при этом автоматически запишется в папку vendor\bin пользователя (для Win), которая должна быть указана в системной переменной PATH (как и папка с интерпретатором php) и таким образом вы сможете обращаться к фреймворку только по названию исполняемого файла:
Если в PATH не указан путь к bin, обязательно укажите. Чтобы проверить наберите в консоли:
Если планируете использовать кирилические символы (русский) в тестах, то чтобы они выводились корректно в консоли, можно добавить строку
в файл codecept.bat находящийся в папке пользователя, например: C:\Users\имя_вашего_пользователя\AppData\Roaming\Composer\vendor\bin\codecept.bat

Установка в текущий проект.

Осуществляется командой:
Запускающий файл будет находиться в папке vendor\bin проекта. Чтобы не набирать для тестирования «vendor\bin\codecept»:
1) для Linux создаем алиас:
2) для Win
создать в корне проекта файл codecept.bat или любое удобное название с содержимым:
строкой @chcp 65001 я указал кодировку чтобы кирилические символы отображались корректно.
Далее я буду описывать процесс исходя из того, что установлен Windows.

Теперь для запуска из корня проекта достаточно писать просто

Если вы не планируете проводить приемочное тестирование, то можете установить базовую версию Codeception без загрузки библиотек Webdriver и Guzzle:

Для ознакомления с консольными командами Codeception можно воспользоваться справкой:

  • вывести описание доступных консольных команд
  • вывести справку по нужной команде

Инициализация.

После первой установки Codeception нужно выполнить команду инициализации которая создаст в корне проекта конфигурационный файл codeception.yml и папку tests с различными папками и файлами:
Возможно указание дополнительных параметров запуска этой команды, которые можно посмотреть в файле \codeception\codeception\src\Codeception\Command\Bootstrap.php

Например указываем каталог для размещения тестов – testsCodeception, если не хотим чтобы они разместились в корне:

Структура каталогов codeception

В каталоге tests, который был создан в результате команды codecept bootstrap, вы увидите следующий набор директорий:

  • _data — может содержать файлы базы данных (php файлы возвращающие массив данных для использования в fixtures), дамп базы.
  • _output — содержит вывод тестов и их результат.
  • _support — содержит сгенерированные модули, которые нужны для запуска тестов. Они создаются с помощью команды (codecept build). Так же содержит помощники к тестам.
  • acceptance — содержит приёмные тесты.
  • functional — содержит функциональные тесты.
  • unit — содержит модульные тесты

Так же в корне проекта (по-умолчанию) появится файл codeception.yml. Файлы с расширением .yml существуют для настройки тестирования (подключение модулей, их настройки. В каталогах отдельных типов тестов так же будут конфигурационные файлы для настройки конкретно соответствующего типа тестирования).

Настройка.

При инициализации Codeception в корне приложения появится главный конфигурационный файл codeception.yml. В нем указаны общие настройки для тестирования и можно дополнительно указать глобальные модули и их параметры, которые нужны для разных типов тестов, например:

Для каждого типа тестов (приемочные, функциональные, модульные) существует дополнительный, специализированный конфигурационный файл. Например для проведения приемочного тестирования нужно настроить общий конфигурационный файл — tests\acceptance.suite.yml указать домен сайта для PhpBrowser:

Так же, в примере данного конфигурационного файла видим подключение модуля Db с дополнительными настройками, основные настройки которого указаны выше в главном конфигурационном файле.

Можно вывести в консоль массив текущей конфигурации (какие указаны настройки, какие можно указать)

После внесения правок в конфигурационные файлы нужно выполнить команду:
это сгенерирует трейты с методами для тестирования из модулей Codeception которые появится в папке tests\_support\_generated.
При этом в информации, которая будет выведена в консоль после выполнения команды, можно увидеть кол-во добавленных методов и подключенных модулей для каждого типа теста:

Сам класс конфигурации находится в файле vendor\codeception\codeception\src\Codeception\Configuration.php

Пример.

Существует два способа написания тестов в Codeception, которым соответствуют два типа наименования файлов: Cept и Cest. Cept строится по сценарию (функциональное программирование), а Cest на базе объектов (ООП). Кроме того, Codeception может выполнять PHPUnit-тесты для модульного тестирования т.к. наследуется от данной библиотеки.
В качестве примера создам простой приемочный тест по типу Cept для проверки главной страницы сайта.

Файл теста можно сгенерировать автоматически. Создадим файл HomeCept.php командой:
Файл появится в папке tests/acceptance и сразу будет содержать строки:
При желании, создать файл теста можно и вручную, главное указать в названии файла окончание «Cept».

Дополним тест на проверку доступа к главной странице которая также должна вернуть указанный текст (фразу).

В обязательном методе wantTo() указывается действие которое осуществляет данный тестовый метод.
В методе amOnPage() указывается на какой странице начинается тестирование (далее возможен переход по ссылкам и тд.).
Метод seeResponseCodeIs() сравнивает код который возвращает сервер на запрос страницы, с указанным в качестве аргумента. В данном случае, я использовал константу «OK» из класса HttpCode, которая имеет значение 200, но можно указывать аргумент и непосредственно в цифровом варианте. Это тестовый метод и он возвращает true если код равен указанному.
Ну и часто употребляемый метод see() возвращает true если на странице присутствует указанная фраза.

Так же можно создавать тестовый файл сразу в определенной папке. Это удобно, т.к. путь к тесту должен повторять файловую структуру проекта. Например создадим модульный тест, файл SaveTest.php в папке articles (папка создастся автоматически):
Кроме того, тестам, которые созданы на базе классов (cest и test), автоматически будет присвоено пространство имен, в данном случае:
namespace articles;

Подробнее ознакомиться с существующими методами можно в справочных файлах из папки vendor\codeception\codeception\docs и в моих следующих статьях.

Запуск тестов.

Для простого запуска тестов нужно перейти в консоли в корень проекта или в каталог куда были установлены тесты (если установка была не в корень) и выполнить:
будут выполнены все тесты (модульные, функциональные и приемочные).

Для запуска тестирования из любого каталога (без перехода в корень проекта) – дополнительно нужно указать путь к проекту, например:

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

Можно запустить тестирование одного конкретного класса теста, например:

Например:
эта команда запустит все тесты из всех тестовых наборов, все шаги будут выводиться на консоль, результаты тестов буду сохранены в HTML файл (в папку tests/_output).

Согласно примера, главная страница сайта должна вернуть заголовок со статусом 200 и контент должен содержать фразу ‘Главная страница‘. При успешном прохождении теста, в консоли будет выведено:

Помощники.

В помощниках можно определять недостающие утверждения (assertion). Файлы помощников находятся в папке tests\_support\Help e r .
Вы можете использовать методы PHPUnit:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Codec windows media player mkv codec
  • Codec windows 7 wmv
  • Codec player for windows media player
  • Codec pack windows essentials
  • Codec pack quicktime windows 7