| PHPUnit |`api_v3_AllTests`|`headless`|Agnostic|`CiviUnitTestCase`|Requires `CIVICRM_UF=UnitTests`|
| PHPUnit |`Civi\AllTests`|`headless`|Agnostic|`CiviUnitTestCase`|Requires `CIVICRM_UF=UnitTests`|
| PHPUnit |`CRM_AllTests`|`headless`|Agnostic|`CiviUnitTestCase`|Requires `CIVICRM_UF=UnitTests`|
-| PHPUnit |`E2E_AllTests`|`e2e`|Agnostic|`PHPUnit_Framework_TestCase`|Useful for command-line scripts and web-services|
+| PHPUnit |`E2E_AllTests`|`e2e`|Agnostic|`CiviEndToEndTestCase`|Useful for command-line scripts and web-services|
| PHPUnit |`WebTest_AllTests`|`e2e`|Drupal|`CiviSeleniumTestCase`|Useful for tests which require a full web-browser|
| Karma ||`unit`|Agnostic|||
| QUnit ||`e2e`|Agnostic||Run each test in a browser. See README.|
--- /dev/null
+<?php
+
+/**
+ * Class CiviEndToEndTestCase
+ *
+ * An end-to-end test case in which we have booted Civi+CMS and loaded the
+ * admin user in the local process.
+ *
+ * Note: If you need to work as a different user, try using `cv()` or
+ * a web-service.
+ */
+class CiviEndToEndTestCase extends PHPUnit_Framework_TestCase implements \Civi\Test\EndToEndInterface {
+
+ protected function setUp() {
+ CRM_Core_Config::singleton(1, 1);
+ CRM_Utils_System::loadBootStrap(array(
+ 'name' => $GLOBALS['_CV']['ADMIN_USER'],
+ 'pass' => $GLOBALS['_CV']['ADMIN_PASS'],
+ ));
+
+ parent::setUp();
+ }
+
+}