пользовательская структура каталогов codeception

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

Codeception использует следующую структуру:

tests/
- _data
- _output
- _support
- acceptance
- functional
- unit

Мы пытаемся включить тесты в структуру нашего приложения mvc, чтобы у нас было следующее:

application/
-  controllers/
       - folder1/
            - controller1.php
            - test.php
       - folder2/
            - controller2.php
            - test.php
-  views/
      - view1/
            - view1.php
            - test.php
      - view2/
            - view2.php
            - test.php

Таким образом, структура упрощает отслеживание для нас, иначе мы получим тысячи тестов в одной папке. Я знаю, что мы можем определять подпространства имен в основном codeception.yml, однако он по-прежнему использует тот же плоский макет каталогов, который мы не хотим использовать.

Как будет выглядеть начальная загрузка codeception, чтобы заставить ее заглянуть в папку верхнего уровня и просто запустить любой тест в каталогах под ней и включить его в основной бегун?


person Mattvb91    schedule 16.04.2015    source источник


Ответы (1)


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

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

  • принятие
  • функциональный
  • Ед. изм

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

  • suite1/
    • controllertest1.php
    • viewtest1.php
  • suite2/
    • controllertest2.php
    • viewtest2.php Если эти наборы будут слишком маленькими, я бы поместил тесты для 1 модуля вашего приложения в 1 набор. Не забудьте дать тестам выразительные имена. Это сделает вашу жизнь намного проще.

Просто создайте новый пакет с помощью ./codecept g: suite suite1 http://codeception.com/docs/reference/Commands#GenerateSuite

person B4rb4ross4    schedule 25.09.2015