diff --git a/tests/PHPUnit/ConsoleCommandTestCase.php b/tests/PHPUnit/ConsoleCommandTestCase.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ff21b4cafde8aaf74c0d7522b42f716fc9cf5af
--- /dev/null
+++ b/tests/PHPUnit/ConsoleCommandTestCase.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+namespace Piwik\Tests;
+
+use Piwik\Config;
+use Piwik\Console;
+use Symfony\Component\Console\Tester\ApplicationTester;
+
+/**
+ * Base class for test cases that test Piwik console commands. Derives from IntegrationTestCase
+ * so the entire Piwik environment is set up.
+ *
+ * This will create an ApplicationTester instance (provided by Symfony) which should be used to
+ * test commands like this:
+ *
+ *     public function testThisAndThat()
+ *     {
+ *         $result = $this->applicationTester->run(array(
+ *             'command' => 'my-command',
+ *             'arg1' => 'value1',
+ *             'arg2' => 'value2',
+ *             '--option' => true,
+ *             '--another-option' => 'value3'
+ *         ));
+ *         $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage());
+ *
+ *         // other checks
+ *     }
+ */
+class ConsoleCommandTestCase extends \IntegrationTestCase
+{
+    protected $applicationTester = null;
+
+    public function setUp()
+    {
+        parent::setUp();
+
+        $application = new Console();
+        $application->setAutoExit(false);
+
+        $this->applicationTester = new ApplicationTester($application);
+
+        Config::unsetInstance();
+    }
+
+    protected function getCommandDisplayOutputErrorMessage()
+    {
+        return "Command did not behave as expected. Command output: " . $this->applicationTester->getDisplay();
+    }
+}
\ No newline at end of file
diff --git a/tests/PHPUnit/bootstrap.php b/tests/PHPUnit/bootstrap.php
index 1dcb995b0ea9af80650ab97ffd4084ad8a52b238..429b3d17e6f38ae421ba4dc6f0a36500c6fe4cae 100644
--- a/tests/PHPUnit/bootstrap.php
+++ b/tests/PHPUnit/bootstrap.php
@@ -34,6 +34,7 @@ require_once PIWIK_INCLUDE_PATH . '/core/Loader.php';
 require_once PIWIK_INCLUDE_PATH . '/core/FrontController.php';
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/DatabaseTestCase.php';
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/IntegrationTestCase.php';
+require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/ConsoleCommandTestCase.php';
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/FakeAccess.php';
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockPiwikOption.php';
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/TestingEnvironment.php';