Codeception helper , , .
. , .
:
namespace Codeception\Module;
use Codeception\Module;
use Codeception\TestInterface;
use Phinx\Console\PhinxApplication;
use Symfony\Component\Console\Input\StringInput;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Output\NullOutput;
class FixtureHelper extends Module
{
public function _before(TestInterface $test)
{
$populate = $this->getModule('Db')->_getConfig('populate');
if ($populate) {
$this->migrateDatabase();
}
}
public function migrateDatabase()
{
$app = new PhinxApplication();
$app->setAutoExit(false);
$output = new NullOutput();
$input = new StringInput('migrate -e test');
$app->run($input, $output);
}
}
( ):
actor: FunctionalTester
modules:
enabled:
- ... your modules
- FunctionalHelper
- FixtureHelper
config:
Db:
dsn: '... dsn'
user: '%DB_USER%'
password: '%DB_PASSWORD%'
dump: 'tests/_data/dump.sql'
populate: true
cleanup: true
FixtureHelper:
depends: Db
(tests/_data/dump.sql):
SELECT 1+2 AS veryComplicatedCalculations;
Phinx (phinx.yml) , Codeception (codeception.yml), , PhinxApplication .
!