2014-10-21 5 views
2

Мне нужно запустить метод перед каждым методом тестирования. На основе документации https://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.before, я сделал этот маленький тест:phpunit @before @after не работает

/** 
* @before 
*/ 
public function setupSomeFixtures() 
{ 
    echo "setupSomeFixtures\n"; 
} 

/** 
* @after 
*/ 
public function tearDownSomeFixtures() 
{ 
    echo "tearDownSomeFixtures\n"; 
} 

public function testTruc() 
{ 
    echo "un test\n"; 
} 

Выход:

PHPUnit 3.7.21 by Sebastian Bergmann. 

Configuration read from <root>\phpunit.xml 

.un test 


Time: 5 seconds, Memory: 14.25Mb 

OK (1 test, 0 assertions) 

Я пропускаю что-то?

+0

Я никогда не использовал это, но .. не '@ before' запускается перед испытанием? И '@ after' ПОСЛЕ завершения теста? Таким образом, ваш результат будет выводить результаты только между тестами? (Просто случайное предположение) – Gudgip

+0

В документе phpunit говорится: «Аннотацию @ перед аннотацией можно использовать для указания методов, которые следует вызывать перед каждым методом тестирования в классе тестового случая.» Так что я хорошо понимаю, для запуска до каждого тестового метода, а не до класса теста – smarber

ответ

1

Аннотации Before были добавлены в версию 3.8 phpunit, поэтому в вашем 3.7 не работает.

Это мой выход:

PHPUnit 4.2.6 by Sebastian Bergmann. 

Configuration read from /<omissis>/app/phpunit.xml.dist 

The Xdebug extension is not loaded. No code coverage will be generated. 

.setupSomeFixtures 
tearDownSomeFixtures 
.setupSomeFixtures 
tearDownSomeFixtures 
.setupSomeFixtures 
tearDownSomeFixtures 
IsetupSomeFixtures 
tearDownSomeFixtures 
.setupSomeFixtures 
un test 
tearDownSomeFixtures 


Time: 451 ms, Memory: 23.00Mb 

Так обновление до PHPUnit 3.8 или главный

+1

3. *> 3.7 нестабильно, я постараюсь 4.3 (стабильный) – smarber

+0

Привет @smarber, пожалуйста, рассмотрите вопрос о моем ответе, если вы сочтете это полезным – Matteo

Смежные вопросы