Если вы пропускаете медленные тесты изнутри теста, используя $this->markTestSkipped()
, вы не можете предотвратить выполнение dataProvider.
Это связано с тем, что PHPUnit должен получить данные, которые будут переданы на тесты, перед их выполнением.
Возможные решения:
Установить переменную среды из командной строки (-d key[=value]
опция), которая будет считываться как по DataProvider и медленного испытания. DataProvider вернет фиктивный массив, и тест будет отмечен как пропущенный.
Марк тест, как медленно, используя @group
аннотацию и использовать опцию --exclude-group
командной строки, так что тесты медленных групп не будут выполнены
Рефакторинга теста не используются, так что никакие dataProviders, предполагая, что неудобства не имеющих тесты в отдельных случаях.
Я попробую решение 1. Решение 2 не помогает: при использовании --exclude-group, dataprovider все равно будет выполнен. 3. Я использую датапровайдер, чтобы иметь различные тестовые примеры. –