mirror of
https://github.com/wallabag/wallabag.git
synced 2025-02-02 12:02:23 +00:00
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:
parent
371ac69a6b
commit
0ee043f745
3 changed files with 35 additions and 6 deletions
|
@ -31,11 +31,11 @@ install:
|
||||||
|
|
||||||
# build coverage only on one build, to speed up results feedbacks
|
# build coverage only on one build, to speed up results feedbacks
|
||||||
before_script:
|
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:
|
script:
|
||||||
- ant prepare
|
- ant prepare
|
||||||
- phpunit $PHPUNIT_FLAGS
|
- phpunit --exclude-group command-doctrine $PHPUNIT_FLAGS
|
||||||
|
|
||||||
after_script:
|
after_script:
|
||||||
- |
|
- |
|
||||||
|
|
|
@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Tests\Command;
|
||||||
|
|
||||||
use Wallabag\CoreBundle\Tests\WallabagTestCase;
|
use Wallabag\CoreBundle\Tests\WallabagTestCase;
|
||||||
use Wallabag\CoreBundle\Command\InstallCommand;
|
use Wallabag\CoreBundle\Command\InstallCommand;
|
||||||
|
use Wallabag\CoreBundle\Tests\Mock\InstallCommandMock;
|
||||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||||
use Symfony\Component\Console\Tester\CommandTester;
|
use Symfony\Component\Console\Tester\CommandTester;
|
||||||
use Symfony\Component\Console\Input\ArrayInput;
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
|
@ -30,7 +31,7 @@ class InstallCommandTest extends WallabagTestCase
|
||||||
$this->container = static::$kernel->getContainer();
|
$this->container = static::$kernel->getContainer();
|
||||||
|
|
||||||
$application = new Application(static::$kernel);
|
$application = new Application(static::$kernel);
|
||||||
$application->add(new InstallCommand());
|
$application->add(new InstallCommandMock());
|
||||||
|
|
||||||
$command = $application->find('wallabag:install');
|
$command = $application->find('wallabag:install');
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ class InstallCommandTest extends WallabagTestCase
|
||||||
$this->container = static::$kernel->getContainer();
|
$this->container = static::$kernel->getContainer();
|
||||||
|
|
||||||
$application = new Application(static::$kernel);
|
$application = new Application(static::$kernel);
|
||||||
$application->add(new InstallCommand());
|
$application->add(new InstallCommandMock());
|
||||||
|
|
||||||
$command = $application->find('wallabag:install');
|
$command = $application->find('wallabag:install');
|
||||||
|
|
||||||
|
@ -97,6 +98,9 @@ class InstallCommandTest extends WallabagTestCase
|
||||||
$this->assertContains('Droping database, creating database and schema', $tester->getDisplay());
|
$this->assertContains('Droping database, creating database and schema', $tester->getDisplay());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group command-doctrine
|
||||||
|
*/
|
||||||
public function testRunInstallCommandWithDatabaseRemoved()
|
public function testRunInstallCommandWithDatabaseRemoved()
|
||||||
{
|
{
|
||||||
$this->container = static::$kernel->getContainer();
|
$this->container = static::$kernel->getContainer();
|
||||||
|
@ -148,7 +152,7 @@ class InstallCommandTest extends WallabagTestCase
|
||||||
$this->container = static::$kernel->getContainer();
|
$this->container = static::$kernel->getContainer();
|
||||||
|
|
||||||
$application = new Application(static::$kernel);
|
$application = new Application(static::$kernel);
|
||||||
$application->add(new InstallCommand());
|
$application->add(new InstallCommandMock());
|
||||||
|
|
||||||
$command = $application->find('wallabag:install');
|
$command = $application->find('wallabag:install');
|
||||||
|
|
||||||
|
@ -181,6 +185,9 @@ class InstallCommandTest extends WallabagTestCase
|
||||||
$this->assertContains('Droping schema and creating schema', $tester->getDisplay());
|
$this->assertContains('Droping schema and creating schema', $tester->getDisplay());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group command-doctrine
|
||||||
|
*/
|
||||||
public function testRunInstallCommandChooseNothing()
|
public function testRunInstallCommandChooseNothing()
|
||||||
{
|
{
|
||||||
$this->container = static::$kernel->getContainer();
|
$this->container = static::$kernel->getContainer();
|
||||||
|
@ -242,7 +249,7 @@ class InstallCommandTest extends WallabagTestCase
|
||||||
$this->container = static::$kernel->getContainer();
|
$this->container = static::$kernel->getContainer();
|
||||||
|
|
||||||
$application = new Application(static::$kernel);
|
$application = new Application(static::$kernel);
|
||||||
$application->add(new InstallCommand());
|
$application->add(new InstallCommandMock());
|
||||||
|
|
||||||
$command = $application->find('wallabag:install');
|
$command = $application->find('wallabag:install');
|
||||||
|
|
||||||
|
|
22
src/Wallabag/CoreBundle/Tests/Mock/InstallCommandMock.php
Normal file
22
src/Wallabag/CoreBundle/Tests/Mock/InstallCommandMock.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue