2015-05-14 3 views
4

Мне известно о файле _bootstrap.php, который используется для настройки среды тестирования и т. Д., Но я ищу способ запустить некоторый код после того, как весь комплект тестов законченный.Запуск пользовательского кода после завершения комплекта Codefix

Обратите внимание, что я не ищу способ запуска кода после одного класса, то есть что-то вроде _after, но после всех классов.

Есть ли способ достичь этого?

ответ

4

Фактически удалось решить это сам, вот как, если кому-то интересно.

Я создал новый вспомогательный класс внутри _support.

<?php 

class DataHelper extends \Codeception\Module 
{ 
    public function _beforeSuite() 
    { 
     // Set up before test suite 
    } 

    public function _afterSuite() 
    { 
     // Tear down after test suite 
    } 
} 

Вы можете включить это в качестве модуля в любой конфигурации ванной (в .yml файлы), как это:

modules: 
    enabled: 
     - DataHelper 
+0

Это решение можно реализовать и по сценарию? может быть, что-то вроде _beforeScenario и _afterScenario? – Praditha

3

@Sacha's solution особенно полезен, если вы хотите, чтобы одни и те же методы accross все люкс.

Если вы ищете способ определения методов для определенного пакета (или если вы хотите использовать другой метод для каждого пакета), вы можете определить эти методы непосредственно в классе Helper класса.

Например, если вы хотите определить способ для приемной комнаты _afterSuite, просто перейдите к support/AcceptanceHelper.php и определите эти методы там. Например:

<?php 
namespace Codeception\Module; 

// here you can define custom actions 
// all public methods declared in helper class will be available in $I 

class AcceptanceHelper extends \Codeception\Module 
{ 
    public function _afterSuite() { 
     die('everything done'); 
    } 
} 
Смежные вопросы