Создавайте и запускайте тесты кодового восприятия от PHP - PullRequest
0 голосов
/ 27 января 2020

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

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

Проблема заключается в том, что Codeception динамически генерирует кучу файлов конфигурации и сценариев при создании CEST. Я не мог заставить его работать, используя классы Codeception.

У кого-нибудь есть идеи, как лучше всего добиться этого?

1 Ответ

1 голос
/ 28 января 2020

Я думаю, что наилучшим подходом было бы реализовать пользовательский загрузчик тестов, как описано в https://codeception.com/docs/07-AdvancedUsage#Formats

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

Копия документации:

В дополнение к стандартным форматам тестов (Cept, Cest, Unit, Gherkin) вы можете реализовать свои собственные классы форматирования настроить выполнение теста. Укажите их в своей конфигурации:

formats:
  - \My\Namespace\MyFormat

Затем определите класс, который реализует LoaderInterface

namespace My\Namespace;

class MyFormat implements \Codeception\Test\Loader\LoaderInterface
{
    protected $tests;

    protected $settings;

    public function __construct($settings = [])
    {
        //These are the suite settings
        $this->settings = $settings;
    }

    public function loadTests($filename)
    {
        //Load file and create tests
    }

    public function getTests()
    {
        return $this->tests;
    }

    public function getPattern()
    {
        return '~Myformat\.php$~';
    }
}

Для вдохновения посмотрите на существующие классы Loader: https://github.com/Codeception/Codeception/tree/4.0/src/Codeception/Test/Loader

...