Я знаю, это тоже не очень удобно, но вы можете попробовать
phpunit --filter 'testOne|testTwo'
Согласно PHPUnit документации мы можем использовать регулярные выражения в качестве фильтра.
Также вы можете использовать data provider для генерации значения для второго теста. Но имейте в виду, что метод поставщика данных всегда будет выполняться перед всеми тестами, чтобы он мог замедлить выполнение, если он имеет тяжелую обработку.
Еще один подход заключается в создании некоторого вспомогательного метода или объекта, который будет выполнять некоторые фактические результаты работы и кеша, которые будут использоваться различными тестами. Тогда вам не нужно будет использовать зависимости, и ваши данные будут генерироваться по запросу и кэшироваться для совместного использования различными тестами.
class MyTest extends PHPUnit_Framework_TestCase
{
protected function _helper($someParameter) {
static $resultsCache;
if(!isset($resultsCache[$someParameter])) {
// generate your $value based on parameters
$resultsCache[$someParameter] = $value;
}
return $resultsCache[$someParameter];
}
// More tests before
public function testOne()
{
$value = $this->_helper('my parameter');
// Assertions for $value
}
/**
*
*/
public function testTwo()
{
$value = $this->_helper('my parameter');
// Get another results using $value
// Assertions
}
// More tests after
}
Более вот жаль, что нет простого способа сделать это! Группы работают, но требуют как можно большего количества групп, таких как пути, которые вы регулярно хотите протестировать, - заканчивая важной зависимостью в * n * группах, где * n * - количество зависимых тестов. Это беспорядок, и должен быть более простой способ! Я сделал предложение (https://github.com/sebastianbergmann/phpunit/issues/2166) – artfulrobot