Update InstallCommand test

They are god damn too long to execute because it launch external command (mostly related to doctrine).

So I've added a PHPUnit @group (`command-doctrine`) so that we can avoid launching them on a regular basis, like that:

`phpunit --exclude-group command-doctrine`
This commit is contained in:
Jeremy 2015-03-28 21:45:35 +01:00
parent 371ac69a6b
commit 0ee043f745
3 changed files with 35 additions and 6 deletions

View file

@ -31,11 +31,11 @@ install:
# build coverage only on one build, to speed up results feedbacks
before_script:
- if [[ "$TRAVIS_PHP_VERSION" = "5.6" ]]; then PHPUNIT_FLAGS="--coverage-clover=coverage.clover"; fi;
- if [[ "$TRAVIS_PHP_VERSION" = "5.6" ]]; then PHPUNIT_FLAGS="--coverage-clover=coverage.clover"; else PHPUNIT_FLAGS=""; fi;
script:
- ant prepare
- phpunit $PHPUNIT_FLAGS
- phpunit --exclude-group command-doctrine $PHPUNIT_FLAGS
after_script:
- |

View file

@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Tests\Command;
use Wallabag\CoreBundle\Tests\WallabagTestCase;
use Wallabag\CoreBundle\Command\InstallCommand;
use Wallabag\CoreBundle\Tests\Mock\InstallCommandMock;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Tester\CommandTester;
use Symfony\Component\Console\Input\ArrayInput;
@ -30,7 +31,7 @@ class InstallCommandTest extends WallabagTestCase
$this->container = static::$kernel->getContainer();
$application = new Application(static::$kernel);
$application->add(new InstallCommand());
$application->add(new InstallCommandMock());
$command = $application->find('wallabag:install');
@ -64,7 +65,7 @@ class InstallCommandTest extends WallabagTestCase
$this->container = static::$kernel->getContainer();
$application = new Application(static::$kernel);
$application->add(new InstallCommand());
$application->add(new InstallCommandMock());
$command = $application->find('wallabag:install');
@ -97,6 +98,9 @@ class InstallCommandTest extends WallabagTestCase
$this->assertContains('Droping database, creating database and schema', $tester->getDisplay());
}
/**
* @group command-doctrine
*/
public function testRunInstallCommandWithDatabaseRemoved()
{
$this->container = static::$kernel->getContainer();
@ -148,7 +152,7 @@ class InstallCommandTest extends WallabagTestCase
$this->container = static::$kernel->getContainer();
$application = new Application(static::$kernel);
$application->add(new InstallCommand());
$application->add(new InstallCommandMock());
$command = $application->find('wallabag:install');
@ -181,6 +185,9 @@ class InstallCommandTest extends WallabagTestCase
$this->assertContains('Droping schema and creating schema', $tester->getDisplay());
}
/**
* @group command-doctrine
*/
public function testRunInstallCommandChooseNothing()
{
$this->container = static::$kernel->getContainer();
@ -242,7 +249,7 @@ class InstallCommandTest extends WallabagTestCase
$this->container = static::$kernel->getContainer();
$application = new Application(static::$kernel);
$application->add(new InstallCommand());
$application->add(new InstallCommandMock());
$command = $application->find('wallabag:install');

View file

@ -0,0 +1,22 @@
<?php
namespace Wallabag\CoreBundle\Tests\Mock;
use Wallabag\CoreBundle\Command\InstallCommand;
/**
* This mock aims to speed the test of InstallCommand by avoid calling external command
* like all doctrine commands.
*
* This speed the test but as a downside, it doesn't allow to fully test the InstallCommand
*
* Launching tests to avoid doctrine command:
* phpunit --exclude-group command-doctrine
*/
class InstallCommandMock extends InstallCommand
{
protected function runCommand($command, $parameters = array())
{
return $this;
}
}