diff --git a/tests/phpunit/includes/testcase.php b/tests/phpunit/includes/testcase.php index 344f9eb331..899050455d 100644 --- a/tests/phpunit/includes/testcase.php +++ b/tests/phpunit/includes/testcase.php @@ -57,6 +57,13 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase { } public static function setUpBeforeClass() { + global $wpdb; + + $wpdb->suppress_errors = false; + $wpdb->show_errors = true; + $wpdb->db_connect(); + ini_set('display_errors', 1 ); + parent::setUpBeforeClass(); $c = self::get_called_class(); @@ -98,11 +105,8 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase { $this->_backup_hooks(); } - global $wpdb, $wp_rewrite; - $wpdb->suppress_errors = false; - $wpdb->show_errors = true; - $wpdb->db_connect(); - ini_set('display_errors', 1 ); + global $wp_rewrite; + $this->clean_up_global_scope(); /* diff --git a/tests/phpunit/includes/utils.php b/tests/phpunit/includes/utils.php index a1513605b8..66c8756bf7 100644 --- a/tests/phpunit/includes/utils.php +++ b/tests/phpunit/includes/utils.php @@ -389,6 +389,11 @@ class wpdb_exposed_methods_for_testing extends wpdb { $this->ready = true; $this->field_types = $wpdb->field_types; $this->charset = $wpdb->charset; + + $this->dbuser = $wpdb->dbuser; + $this->dbpassword = $wpdb->dbpassword; + $this->dbname = $wpdb->dbname; + $this->dbhost = $wpdb->dbhost; } public function __call( $name, $arguments ) { diff --git a/tests/phpunit/tests/db.php b/tests/phpunit/tests/db.php index beac5f2e89..9595d3df18 100644 --- a/tests/phpunit/tests/db.php +++ b/tests/phpunit/tests/db.php @@ -20,6 +20,7 @@ class Tests_DB extends WP_UnitTestCase { protected static $_wpdb; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); self::$_wpdb = new wpdb_exposed_methods_for_testing(); } @@ -63,6 +64,11 @@ class Tests_DB extends WP_UnitTestCase { $wpdb->close(); $var = $wpdb->get_var( "SELECT ID FROM $wpdb->users LIMIT 1" ); + + // Ensure all database handles have been properly reconnected after this test. + $wpdb->db_connect(); + self::$_wpdb->db_connect(); + $this->assertGreaterThan( 0, $var ); } diff --git a/tests/phpunit/tests/db/charset.php b/tests/phpunit/tests/db/charset.php index 524e46b8b2..e6a796c5d7 100644 --- a/tests/phpunit/tests/db/charset.php +++ b/tests/phpunit/tests/db/charset.php @@ -22,6 +22,8 @@ class Tests_DB_Charset extends WP_UnitTestCase { private static $server_info; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + require_once( dirname( dirname( __FILE__ ) ) . '/db.php' ); self::$_wpdb = new wpdb_exposed_methods_for_testing(); diff --git a/tests/phpunit/tests/rewrite/numericSlugs.php b/tests/phpunit/tests/rewrite/numericSlugs.php index 9ed8ff8898..1ff50fda5b 100644 --- a/tests/phpunit/tests/rewrite/numericSlugs.php +++ b/tests/phpunit/tests/rewrite/numericSlugs.php @@ -16,6 +16,7 @@ class Tests_Rewrite_NumericSlugs extends WP_UnitTestCase { } public function tearDown() { + parent::tearDown(); remove_filter( 'wp_unique_post_slug', array( $this, 'filter_unique_post_slug' ), 10, 6 ); }