Поскольку вопросу уже 2 дня, я попробую:
Кажется, он не работает так, как вы этого хотите.
@depends
просто проверяет, прошел ли тест с указанным именем, и получает результат.Он даже не знает и не заботится о @ аннотациях упомянутого теста.
Я бы предположил (недостаточно глубоко вкопался в источник phpunit, чтобы быть на 100% уверенным). Тесты с @depends
запускаютсякак «группа тестов» внутри, а не как единое целое, поэтому нет теста с именем «testEmpty», и зависит от сбоев.
Так что для обеспечения обходного пути единственное, о чем я могу думать сейчас, это вызватьэти «под-тесты» напрямую.
<?php
class StackTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider provider
*/
public function testEmpty($data) {
$stack = array();
$this->assertTrue(empty($stack));
$this->nextTestOrJustAllInOneTestcaseSaidly($stack);
return $stack;
}
protected function nextTestOrJustAllInOneTestcaseSaidly($data) { ... }
Надеюсь, что это помогает или, по крайней мере, мотивирует кого-то другого ответить;)