-
Notifications
You must be signed in to change notification settings - Fork 224
Writing Tests (Magerun Core)
Christian Münch edited this page Oct 19, 2016
·
1 revision
We deliver a test framework for n98-magerun commands.
Set the environment variable N98_MAGERUN2_TEST_MAGENTO_ROOT
with a path to a magento installation
which can be used to run tests.
i.e.
export N98_MAGERUN2_TEST_MAGENTO_ROOT=/home/myinstallation
Don't use a production environment!
You need PHPUnit to run the tests. If you don't have PHPUnit installed on your system you can use the following command to install all test tools at once.
composer.phar --dev install
Run PHPUnit in n98-magerun root folder. If you have installed with composer you can run::
vendor/bin/phpunit
Test should be placed in "tests" folder according to it's structure in src folder. To prevent naming conflicts you should place test class in same namespace as the class to test.
Example:
<?php
namespace N98\Magento\Command\Cache;
use Symfony\Component\Console\Tester\CommandTester;
use N98\Magento\Command\PHPUnit\TestCase;
class ListCommandTest extends TestCase
{
public function testExecute()
{
$application = $this->getApplication();
$application->add(new ListCommand());
$command = $this->getApplication()->find('cache:list');
$commandTester = new CommandTester($command);
$commandTester->execute(
array(
'command' => $command->getName()
/* add options and arguments here */
/* 'my-argument' => 'argument-value' */
/* '--my-option' => 'option-value' */
)
);
$this->assertRegExp('/config/', $commandTester->getDisplay());
$this->assertRegExp('/collections/', $commandTester->getDisplay());
}
}