Запустите модульный тест PHP с несколькими драйверами базы данных

В библиотеке, которую я пишу, можно предоставить экземпляр PDO, который используется для любого сохранения данных. Поддерживается ряд драйверов, скажем, MySQL & SQLite. Сама библиотека включает в себя некоторые файлы, которые выполняют запросы SQL, которые я хочу протестировать (используя phpUnit). Поэтому я хочу запустить общий (независимый от водителя) модульный тест, по одному разу для каждого водителя.

Интернет не принес мне четкого наилучшего решения, так что вот подходы, которые я придумала до сих пор:

  1. Используйте dataProvider с [‘mysql’, ‘sqlite’] и протестируйте его; однако его использование будет ограничено только одной тестовой функцией, которая мне не нравится.
  2. Настройте каждое соединение с базой данных в setUpBeforeClass для каждого из драйверов, и в каждом цикле тестирования проходите через них и выполняйте тесты. С точки зрения ООП это также не является хорошей альтернативой, не говоря уже о том, что установка нескольких подключений к разным драйверам одновременно может быть довольно ресурсоемкой.
  3. Создайте абстрактный общий класс модульного теста с абстрактным setupConnection() метод. Этот класс затем можно расширить с помощью правильного подключения к базе данных для каждого из необходимых драйверов. Это кажется наиболее жизнеспособным вариантом, однако, с большим количеством файлов / классов для тестирования таким образом (более 10 .. ну не много, но достаточно много), это становится утомительным и грязным подходом к этой проблеме.

В идеале я искал способ сказать phpunit: «Запустите файл этого модульного теста с этими драйверами». Это вообще возможно аккуратно? Или иначе, какие будут альтернативы?

1

Решение

Задача ещё не решена.

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

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

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