Index: tests/phpunit/tests/actions.php
===================================================================
--- tests/phpunit/tests/actions.php	(revision 48816)
+++ tests/phpunit/tests/actions.php	(working copy)
@@ -7,6 +7,10 @@
  */
 class Tests_Actions extends WP_UnitTestCase {
 
+	/**
+	 *
+	 * @covers ::do_action
+	 */
 	function test_simple_action() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -24,6 +28,9 @@
 		$this->assertEquals( array( '' ), $args );
 	}
 
+	/**
+	 * @covers ::remove_action
+	 */
 	function test_remove_action() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -43,6 +50,9 @@
 
 	}
 
+	/**
+	 * @covers ::has_action
+	 */
 	function test_has_action() {
 		$tag  = __FUNCTION__;
 		$func = __FUNCTION__ . '_func';
@@ -57,7 +67,11 @@
 		$this->assertFalse( has_action( $tag ) );
 	}
 
-	// One tag with multiple actions.
+	/**
+	 * One tag with multiple actions.
+	 *
+	 * @covers ::add_action
+	 */
 	function test_multiple_actions() {
 		$a1  = new MockAction();
 		$a2  = new MockAction();
@@ -74,6 +88,11 @@
 		$this->assertEquals( 1, $a2->get_call_count() );
 	}
 
+	/**
+	 * One tag with multiple actions.
+	 *
+	 * @covers ::do_action
+	 */
 	function test_action_args_1() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -89,6 +108,11 @@
 		$this->assertEquals( array( $val ), array_pop( $argsvar ) );
 	}
 
+	/**
+	 * One tag with multiple actions.
+	 *
+	 * @covers ::do_action
+	 */
 	function test_action_args_2() {
 		$a1   = new MockAction();
 		$a2   = new MockAction();
@@ -120,6 +144,8 @@
 	 *
 	 * @see https://core.trac.wordpress.org/ticket/17817#comment:72
 	 * @ticket 17817
+	 *
+	 * @covers ::do_action
 	 */
 	function test_action_args_3() {
 		$a1   = new MockAction();
@@ -157,6 +183,8 @@
 	 * Tests PHP 4 notation for calling actions while passing in an object by reference.
 	 *
 	 * @ticket 48312
+	 *
+	 * @covers ::do_action
 	 */
 	function test_action_args_with_php4_syntax() {
 		$a   = new MockAction();
@@ -201,6 +229,9 @@
 		$this->assertEquals( $expected, $a->get_events() );
 	}
 
+	/**
+	 * @covers ::did_action
+	 */
 	function test_did_action() {
 		$tag1 = 'action1';
 		$tag2 = 'action2';
@@ -222,6 +253,9 @@
 
 	}
 
+	/**
+	 * @covers ::add_action
+	 */
 	function test_all_action() {
 		$a    = new MockAction();
 		$tag1 = __FUNCTION__ . '_1';
@@ -246,6 +280,9 @@
 
 	}
 
+	/**
+	 * @covers ::remove_action
+	 */
 	function test_remove_all_action() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -266,6 +303,9 @@
 		$this->assertEquals( array( $tag ), $a->get_tags() );
 	}
 
+	/**
+	 * @covers ::do_action_ref_array
+	 */
 	function test_action_ref_array() {
 		$obj = new stdClass();
 		$a   = new MockAction();
@@ -284,6 +324,8 @@
 
 	/**
 	 * @ticket 11241
+	 *
+	 * @covers ::add_action
 	 */
 	function test_action_keyed_array() {
 		$a = new MockAction();
@@ -309,6 +351,9 @@
 
 	}
 
+	/**
+	 * @covers ::do_action
+	 */
 	function test_action_self_removal() {
 		add_action( 'test_action_self_removal', array( $this, 'action_self_removal' ) );
 		do_action( 'test_action_self_removal' );
@@ -321,6 +366,8 @@
 
 	/**
 	 * @ticket 17817
+	 *
+	 * @covers ::do_action
 	 */
 	function test_action_recursion() {
 		$tag = __FUNCTION__;
@@ -336,6 +383,9 @@
 		$this->assertEquals( 2, $b->get_call_count(), 'recursive actions should call callbacks with later priority' );
 	}
 
+	/**
+	 * @covers ::do_action
+	 */
 	function action_that_causes_recursion( $tag ) {
 		static $recursing = false;
 		if ( ! $recursing ) {
@@ -348,6 +398,8 @@
 	/**
 	 * @ticket 9968
 	 * @ticket 17817
+	 *
+	 * @covers ::add_action
 	 */
 	function test_action_callback_manipulation_while_running() {
 		$tag = __FUNCTION__;
@@ -383,6 +435,8 @@
 	 *
 	 * This specificaly addresses the concern raised at
 	 * https://core.trac.wordpress.org/ticket/17817#comment:52
+	 *
+	 * @covers ::remove_filter
 	 */
 	function test_remove_anonymous_callback() {
 		$tag = __FUNCTION__;
@@ -416,6 +470,8 @@
 	 * Test the ArrayAccess methods of WP_Hook
 	 *
 	 * @ticket 17817
+	 *
+	 * @covers ::has_action
 	 */
 	function test_array_access_of_wp_filter_global() {
 		global $wp_filter;
@@ -442,6 +498,8 @@
 	 * Make sure current_action() behaves as current_filter()
 	 *
 	 * @ticket 14994
+	 *
+	 * @covers ::current_action
 	 */
 	function test_current_action() {
 		global $wp_current_filter;
@@ -453,6 +511,8 @@
 
 	/**
 	 * @ticket 14994
+	 *
+	 * @covers ::doing_filter
 	 */
 	function test_doing_filter() {
 		global $wp_current_filter;
@@ -472,6 +532,8 @@
 
 	/**
 	 * @ticket 14994
+	 *
+	 * @covers ::doing_filter
 	 */
 	function test_doing_action() {
 		global $wp_current_filter;
@@ -491,6 +553,8 @@
 
 	/**
 	 * @ticket 14994
+	 *
+	 * @covers ::doing_filter
 	 */
 	function test_doing_filter_real() {
 		$this->assertFalse( doing_filter() );            // No filter is passed in, and no filter is being processed.
@@ -509,6 +573,9 @@
 		$this->assertFalse( doing_filter( 'testing' ) ); // No longer doing this filter.
 	}
 
+	/**
+	 * @covers ::doing_filter
+	 */
 	function apply_testing_filter() {
 		$this->apply_testing_filter = true;
 
@@ -530,6 +597,9 @@
 		$this->assertFalse( doing_filter( 'testing_nested' ) );
 	}
 
+	/**
+	 * @covers ::doing_filter
+	 */
 	function apply_testing_nested_filter() {
 		$this->apply_testing_nested_filter = true;
 		$this->assertTrue( doing_filter() );
@@ -541,6 +611,8 @@
 	/**
 	 * @ticket 10441
 	 * @expectedDeprecated tests_do_action_deprecated
+	 *
+	 * @covers ::do_action_deprecated
 	 */
 	public function test_do_action_deprecated() {
 		$p = new WP_Post( (object) array( 'post_title' => 'Foo' ) );
@@ -559,6 +631,8 @@
 	/**
 	 * @ticket 10441
 	 * @expectedDeprecated tests_do_action_deprecated
+	 *
+	 * @covers ::do_action_deprecated
 	 */
 	public function test_do_action_deprecated_with_multiple_params() {
 		$p1 = new WP_Post( (object) array( 'post_title' => 'Foo1' ) );
Index: tests/phpunit/tests/adminbar.php
===================================================================
--- tests/phpunit/tests/adminbar.php	(revision 48816)
+++ tests/phpunit/tests/adminbar.php	(working copy)
@@ -31,6 +31,8 @@
 
 	/**
 	 * @ticket 21117
+	 *
+	 * @covers WP_Admin_Bar::get_nodes
 	 */
 	function test_content_post_type() {
 		wp_set_current_user( self::$editor_id );
@@ -50,6 +52,8 @@
 
 	/**
 	 * @ticket 21117
+	 *
+	 * @covers WP_Admin_Bar::add_node
 	 */
 	function test_merging_existing_meta_values() {
 		wp_set_current_user( self::$editor_id );
@@ -86,6 +90,8 @@
 	/**
 	 * @ticket 25162
 	 * @group ms-excluded
+	 *
+	 * @covers ::_wp_admin_bar_init
 	 */
 	public function test_admin_bar_contains_correct_links_for_users_with_no_role() {
 		$this->assertFalse( user_can( self::$no_role_id, 'read' ) );
@@ -111,6 +117,8 @@
 	/**
 	 * @ticket 25162
 	 * @group ms-excluded
+	 *
+	 * @covers ::_wp_admin_bar_init
 	 */
 	public function test_admin_bar_contains_correct_links_for_users_with_role() {
 		$this->assertTrue( user_can( self::$editor_id, 'read' ) );
@@ -139,6 +147,8 @@
 	 * @ticket 25162
 	 * @group multisite
 	 * @group ms-required
+	 *
+	 * @covers ::_wp_admin_bar_init
 	 */
 	public function test_admin_bar_contains_correct_links_for_users_with_no_role_on_blog() {
 		$blog_id = self::factory()->blog->create(
@@ -188,6 +198,8 @@
 	 * @ticket 25162
 	 * @group multisite
 	 * @group ms-required
+	 *
+	 * @covers ::_wp_admin_bar_init
 	 */
 	public function test_admin_bar_contains_correct_links_for_users_with_no_role_on_network() {
 		$this->assertTrue( user_can( self::$admin_id, 'read' ) );
@@ -239,6 +251,9 @@
 		restore_current_blog();
 	}
 
+	/**
+	 * @return mixed
+	 */
 	protected function get_standard_admin_bar() {
 		global $wp_admin_bar;
 
@@ -259,6 +274,8 @@
 	 *
 	 * @param array  $node_data     The data for a node, passed to `WP_Admin_Bar::add_node()`.
 	 * @param string $expected_html The expected HTML when admin menu is rendered.
+	 *
+	 * @covers WP_Admin_Bar::add_node
 	 */
 	public function test_admin_bar_with_tabindex_meta( $node_data, $expected_html ) {
 		$admin_bar = new WP_Admin_Bar();
@@ -347,6 +364,9 @@
 
 	/**
 	 * @ticket 22247
+	 *
+	 * @covers ::_wp_admin_bar_init
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_edit_link_for_existing_posts() {
 		wp_set_current_user( self::$editor_id );
@@ -374,6 +394,8 @@
 
 	/**
 	 * @ticket 22247
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_no_edit_link_for_non_existing_posts() {
 		wp_set_current_user( self::$editor_id );
@@ -393,6 +415,8 @@
 
 	/**
 	 * @ticket 34113
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_no_archives_link_if_no_static_front_page() {
 		set_current_screen( 'edit-post' );
@@ -407,6 +431,8 @@
 
 	/**
 	 * @ticket 34113
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_contains_view_archive_link_if_static_front_page() {
 		update_option( 'show_on_front', 'page' );
@@ -422,6 +448,8 @@
 
 	/**
 	 * @ticket 34113
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_no_archives_link_for_pages() {
 		set_current_screen( 'edit-page' );
@@ -437,6 +465,8 @@
 	/**
 	 * @ticket 37949
 	 * @group ms-excluded
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_contains_correct_about_link_for_users_with_role() {
 		wp_set_current_user( self::$editor_id );
@@ -454,6 +484,8 @@
 	/**
 	 * @ticket 37949
 	 * @group ms-excluded
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_contains_correct_about_link_for_users_with_no_role() {
 		wp_set_current_user( self::$no_role_id );
@@ -473,6 +505,8 @@
 	 * @ticket 37949
 	 * @group multisite
 	 * @group ms-required
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_contains_correct_about_link_for_users_with_no_role_in_multisite() {
 		// User is not a member of a site.
@@ -492,6 +526,8 @@
 
 	/**
 	 * @ticket 34113
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_no_archives_link_for_non_public_cpt() {
 		register_post_type(
@@ -516,6 +552,8 @@
 
 	/**
 	 * @ticket 34113
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_no_archives_link_for_cpt_without_archive() {
 		register_post_type(
@@ -540,6 +578,8 @@
 
 	/**
 	 * @ticket 34113
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_admin_bar_has_no_archives_link_for_cpt_not_shown_in_admin_bar() {
 		register_post_type(
@@ -596,6 +636,8 @@
 
 	/**
 	 * @ticket 39252
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_new_user_link_exists_for_user_with_create_users() {
 		wp_set_current_user( self::$admin_id );
@@ -615,6 +657,8 @@
 
 	/**
 	 * @ticket 39252
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_new_user_link_existence_for_user_with_promote_users() {
 		wp_set_current_user( self::$admin_id );
@@ -638,6 +682,8 @@
 
 	/**
 	 * @ticket 39252
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_new_user_link_does_not_exist_for_user_without_create_or_promote_users() {
 		wp_set_current_user( self::$admin_id );
@@ -657,6 +703,8 @@
 	/**
 	 * @ticket 30937
 	 * @covers ::wp_admin_bar_customize_menu
+	 *
+	 * @covers WP_Admin_Bar::get_node
 	 */
 	public function test_customize_link() {
 		global $wp_customize;
@@ -694,6 +742,8 @@
 	/**
 	 * @ticket 39082
 	 * @group ms-required
+	 *
+	 * @covers WP_Admin_Bar::get_nodes
 	 */
 	public function test_my_sites_network_menu_for_regular_user() {
 		wp_set_current_user( self::$editor_id );
@@ -709,6 +759,8 @@
 	/**
 	 * @ticket 39082
 	 * @group ms-required
+	 *
+	 * @covers WP_Admin_Bar::get_nodes
 	 */
 	public function test_my_sites_network_menu_for_super_admin() {
 		wp_set_current_user( self::$editor_id );
@@ -726,6 +778,8 @@
 	/**
 	 * @ticket 39082
 	 * @group ms-required
+	 *
+	 * @covers WP_Admin_Bar::get_nodes
 	 */
 	public function test_my_sites_network_menu_for_regular_user_with_network_caps() {
 		global $current_user;
Index: tests/phpunit/tests/auth.php
===================================================================
--- tests/phpunit/tests/auth.php	(revision 48816)
+++ tests/phpunit/tests/auth.php	(working copy)
@@ -35,11 +35,17 @@
 		wp_set_current_user( self::$user_id );
 	}
 
+	/**
+	 * @covers ::wp_validate_auth_cookie
+	 */
 	function test_auth_cookie_valid() {
 		$cookie = wp_generate_auth_cookie( self::$user_id, time() + 3600, 'auth' );
 		$this->assertEquals( self::$user_id, wp_validate_auth_cookie( $cookie, 'auth' ) );
 	}
 
+	/**
+	 * @covers ::wp_validate_auth_cookie
+	 */
 	function test_auth_cookie_invalid() {
 		// 3600 or less and +3600 may occur in wp_validate_auth_cookie(),
 		// as an ajax test may have defined DOING_AJAX, failing the test.
@@ -56,6 +62,9 @@
 		$this->assertEquals( false, wp_validate_auth_cookie( self::$user_id, 'auth' ), 'altered cookie' );
 	}
 
+	/**
+	 * @covers ::wp_validate_auth_cookie
+	 */
 	function test_auth_cookie_scheme() {
 		// Arbitrary scheme name.
 		$cookie = wp_generate_auth_cookie( self::$user_id, time() + 3600, 'foo' );
@@ -68,6 +77,8 @@
 
 	/**
 	 * @ticket 23494
+	 *
+	 * @covers ::wp_authenticate
 	 */
 	function test_password_trimming() {
 		$passwords_to_test = array(
@@ -93,11 +104,13 @@
 	 * wp_hash_password function
 	 *
 	 * @ticket 24973
+	 *
+	 * @covers ::wp_hash_password
 	 */
 	function test_wp_hash_password_trimming() {
 
 		$password = ' pass with leading whitespace';
-		$this->assertTrue( wp_check_password( 'pass with leading whitespace', wp_hash_password( $password ) ) );
+		$this->assertTrue( wp_check_password( 'pass with leading whitespace', ( $password ) ) );
 
 		$password = 'pass with trailing whitespace ';
 		$this->assertTrue( wp_check_password( 'pass with trailing whitespace', wp_hash_password( $password ) ) );
@@ -114,6 +127,8 @@
 
 	/**
 	 * @ticket 29217
+	 *
+	 * @covers ::wp_verify_nonce
 	 */
 	function test_wp_verify_nonce_with_empty_arg() {
 		$this->assertFalse( wp_verify_nonce( '' ) );
@@ -122,6 +137,8 @@
 
 	/**
 	 * @ticket 29542
+	 *
+	 * @covers ::wp_verify_nonce
 	 */
 	function test_wp_verify_nonce_with_integer_arg() {
 		$this->assertFalse( wp_verify_nonce( 1 ) );
@@ -129,6 +146,8 @@
 
 	/**
 	 * @ticket 24030
+	 *
+	 * @covers ::wp_verify_nonce
 	 */
 	function test_wp_nonce_verify_failed() {
 		$nonce = substr( md5( uniqid() ), 0, 10 );
@@ -141,6 +160,8 @@
 
 	/**
 	 * @ticket 24030
+	 *
+	 * @covers ::wp_verify_nonce
 	 */
 	function test_wp_nonce_verify_success() {
 		$nonce = wp_create_nonce( 'nonce_test_action' );
@@ -153,6 +174,8 @@
 
 	/**
 	 * @ticket 36361
+	 *
+	 * @covers ::check_admin_referer
 	 */
 	public function test_check_admin_referer_with_no_action_triggers_doing_it_wrong() {
 		$this->setExpectedIncorrectUsage( 'check_admin_referer' );
@@ -165,6 +188,9 @@
 		unset( $_REQUEST['_wpnonce'] );
 	}
 
+	/**
+	 * @covers ::check_admin_referer
+	 */
 	public function test_check_admin_referer_with_default_action_as_string_not_doing_it_wrong() {
 		// A valid nonce needs to be set so the check doesn't die().
 		$_REQUEST['_wpnonce'] = wp_create_nonce( '-1' );
@@ -176,6 +202,10 @@
 
 	/**
 	 * @ticket 36361
+	/**
+	 *
+	 * @c	 *
+	 * @covers ::check_ajax_referer
 	 */
 	public function test_check_ajax_referer_with_no_action_triggers_doing_it_wrong() {
 		$this->setExpectedIncorrectUsage( 'check_ajax_referer' );
@@ -188,6 +218,9 @@
 		unset( $_REQUEST['_wpnonce'] );
 	}
 
+	/**
+	 * @covers ::wp_authenticate
+	 */
 	function test_password_length_limit() {
 		$limit = str_repeat( 'a', 4096 );
 
@@ -237,6 +270,8 @@
 
 	/**
 	 * @ticket 45746
+	 *
+	 * @covers ::check_password_reset_key
 	 */
 	function test_user_activation_key_is_saved() {
 		$user = get_userdata( $this->user->ID );
@@ -251,6 +286,8 @@
 
 	/**
 	 * @ticket 32429
+	 *
+	 * @covers ::check_password_reset_key
 	 */
 	function test_user_activation_key_is_checked() {
 		global $wpdb;
@@ -289,6 +326,8 @@
 
 	/**
 	 * @ticket 32429
+	 *
+	 * @covers ::check_password_reset_key
 	 */
 	function test_expired_user_activation_key_is_rejected() {
 		global $wpdb;
@@ -312,6 +351,8 @@
 
 	/**
 	 * @ticket 32429
+	 *
+	 * @covers ::check_password_reset_key
 	 */
 	function test_empty_user_activation_key_fails_key_check() {
 		// An empty user_activation_key should not allow any key to be accepted.
@@ -325,6 +366,8 @@
 
 	/**
 	 * @ticket 32429
+	 *
+	 * @covers ::check_password_reset_key
 	 */
 	function test_legacy_user_activation_key_is_rejected() {
 		global $wpdb;
@@ -355,6 +398,8 @@
 	/**
 	 * @ticket 32429
 	 * @ticket 24783
+	 *
+	 * @covers ::check_password_reset_key
 	 */
 	function test_plaintext_user_activation_key_is_rejected() {
 		global $wpdb;
@@ -386,6 +431,8 @@
 	 * Ensure users can log in using both their username and their email address.
 	 *
 	 * @ticket 9568
+	 *
+	 * @covers ::wp_authenticate
 	 */
 	public function test_log_in_using_email() {
 		$user_args = array(
@@ -401,6 +448,8 @@
 
 	/**
 	 * @ticket 38744
+	 *
+	 * @covers ::wp_signon
 	 */
 	public function test_wp_signon_using_email_with_an_apostrophe() {
 		$user_args = array(
Index: tests/phpunit/tests/avatar.php
===================================================================
--- tests/phpunit/tests/avatar.php	(revision 48816)
+++ tests/phpunit/tests/avatar.php	(working copy)
@@ -8,6 +8,8 @@
 class Tests_Avatar extends WP_UnitTestCase {
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_gravatar_url() {
 		$url = get_avatar_url( 1 );
@@ -16,6 +18,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_size() {
 		$url = get_avatar_url( 1 );
@@ -28,6 +32,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_default() {
 		$url = get_avatar_url( 1 );
@@ -45,6 +51,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_rating() {
 		$url = get_avatar_url( 1 );
@@ -57,6 +65,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_scheme() {
 		$url = get_avatar_url( 1 );
@@ -73,6 +83,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_user() {
 		$url = get_avatar_url( 1 );
@@ -106,6 +118,8 @@
 	protected $fake_url;
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_pre_get_avatar_url_filter() {
 		$this->fake_url = 'haha wat';
@@ -116,6 +130,7 @@
 
 		$this->assertEquals( $url, $this->fake_url );
 	}
+
 	public function pre_get_avatar_url_filter( $args ) {
 		$args['url'] = $this->fake_url;
 		return $args;
@@ -123,6 +138,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_url_filter() {
 		$this->fake_url = 'omg lol';
@@ -139,6 +156,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar_url
 	 */
 	public function test_get_avatar_comment_types_filter() {
 		$url = get_avatar_url( 1 );
@@ -167,11 +186,17 @@
 		return $comment_types;
 	}
 
+	/**
+	 * @covers ::get_avatar
+	 */
 	public function test_get_avatar() {
 		$img = get_avatar( 1 );
 		$this->assertEquals( preg_match( "|^<img alt='[^']*' src='[^']*' srcset='[^']*' class='[^']*' height='[^']*' width='[^']*' loading='lazy'/>$|", $img ), 1 );
 	}
 
+	/**
+	 * @covers ::get_avatar
+	 */
 	public function test_get_avatar_size() {
 		$size = '100';
 		$img  = get_avatar( 1, $size );
@@ -178,6 +203,9 @@
 		$this->assertEquals( preg_match( "|^<img .*height='$size'.*width='$size'|", $img ), 1 );
 	}
 
+	/**
+	 * @covers ::get_avatar
+	 */
 	public function test_get_avatar_alt() {
 		$alt = 'Mr Hyde';
 		$img = get_avatar( 1, 96, '', $alt );
@@ -184,6 +212,9 @@
 		$this->assertEquals( preg_match( "|^<img alt='$alt'|", $img ), 1 );
 	}
 
+	/**
+	 * @covers ::get_avatar
+	 */
 	public function test_get_avatar_class() {
 		$class = 'first';
 		$img   = get_avatar( 1, 96, '', '', array( 'class' => $class ) );
@@ -190,11 +221,17 @@
 		$this->assertEquals( preg_match( "|^<img .*class='[^']*{$class}[^']*'|", $img ), 1 );
 	}
 
+	/**
+	 * @covers ::get_avatar
+	 */
 	public function test_get_avatar_default_class() {
 		$img = get_avatar( 1, 96, '', '', array( 'force_default' => true ) );
 		$this->assertEquals( preg_match( "|^<img .*class='[^']*avatar-default[^']*'|", $img ), 1 );
 	}
 
+	/**
+	 * @covers ::get_avatar
+	 */
 	public function test_get_avatar_force_display() {
 		$old = get_option( 'show_avatars' );
 		update_option( 'show_avatars', false );
@@ -210,6 +247,8 @@
 	protected $fake_img;
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar
 	 */
 	public function test_pre_get_avatar_filter() {
 		$this->fake_img = 'YOU TOO?!';
@@ -226,6 +265,8 @@
 
 	/**
 	 * @ticket 21195
+	 *
+	 * @covers ::get_avatar
 	 */
 	public function test_get_avatar_filter() {
 		$this->fake_url = 'YA RLY';
@@ -244,6 +285,9 @@
 	 * The `get_avatar_data()` function should return gravatar url when comment type allowed to retrieve avatars.
 	 *
 	 * @ticket 44033
+	 *
+	 * @covers ::is_avatar_comment_type
+	 * @covers ::get_avatar
 	 */
 	public function test_get_avatar_data_should_return_gravatar_url_when_input_avatar_comment_type() {
 		$comment_type = 'comment';
@@ -264,6 +308,9 @@
 	 * The `get_avatar_data()` function should return invalid url when comment type not allowed to retrieve avatars.
 	 *
 	 * @ticket 44033
+	 *
+	 * @covers ::is_avatar_comment_type
+	 * @covers ::get_avatar
 	 */
 	public function test_get_avatar_data_should_return_invalid_url_when_input_not_avatar_comment_type() {
 		$comment_type = 'review';
Index: tests/phpunit/tests/basic.php
===================================================================
--- tests/phpunit/tests/basic.php	(revision 48816)
+++ tests/phpunit/tests/basic.php	(working copy)
@@ -3,10 +3,15 @@
 /**
  * just make sure the test framework is working
  *
+ * No Covers as this checks for content in files
+ *
  * @group testsuite
  */
 class Tests_Basic extends WP_UnitTestCase {
 
+	/**
+	 * @coversNothing
+	 */
 	function test_license() {
 		// This test is designed to only run on trunk/master.
 		$this->skipOnAutomatedBranches();
@@ -17,6 +22,9 @@
 		$this->assertEquals( $this_year, trim( $matches[1] ), "license.txt's year needs to be updated to $this_year." );
 	}
 
+	/**
+	 * @coversNothing
+	 */
 	function test_security_md() {
 		// This test is designed to only run on trunk/master.
 		$this->skipOnAutomatedBranches();
@@ -28,6 +36,9 @@
 		$this->assertEquals( $latest_stable, trim( $matches[0] ), "SECURITY.md's version needs to be updated to $latest_stable." );
 	}
 
+	/**
+	 * @coversNothing
+	 */
 	function test_package_json() {
 		$package_json    = file_get_contents( dirname( ABSPATH ) . '/package.json' );
 		$package_json    = json_decode( $package_json, true );
@@ -42,6 +53,8 @@
 
 	/**
 	 * @depends test_package_json
+	 *
+	 * @coversNothing
 	 */
 	function test_package_json_node_engine( $package_json ) {
 		$this->assertArrayHasKey( 'engines', $package_json );
@@ -50,8 +63,11 @@
 		$this->assertRegExp( '~^=?\d+\.\d+\.\d+$~', $node, "package.json's node version cannot be a range." );
 	}
 
-	// Test some helper utility functions.
-
+	/**
+	 * Test some helper utility functions.
+	 *
+	 * @coversNothing
+	 */
 	function test_strip_ws() {
 		$this->assertEquals( '', strip_ws( '' ) );
 		$this->assertEquals( 'foo', strip_ws( 'foo' ) );
@@ -79,6 +95,9 @@
 
 	}
 
+	/**
+	 * @coversNothing
+	 */
 	function test_mask_input_value() {
 		$in = <<<EOF
 <h2>Assign Authors</h2>
Index: tests/phpunit/tests/cache.php
===================================================================
--- tests/phpunit/tests/cache.php	(revision 48816)
+++ tests/phpunit/tests/cache.php	(working copy)
@@ -26,10 +26,18 @@
 		return $cache;
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::test_miss
+	 */
 	function test_miss() {
 		$this->assertEquals( null, $this->cache->get( 'test_miss' ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::add
+	 */
 	function test_add_get() {
 		$key = __FUNCTION__;
 		$val = 'val';
@@ -38,6 +46,10 @@
 		$this->assertEquals( $val, $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::add
+	 */
 	function test_add_get_0() {
 		$key = __FUNCTION__;
 		$val = 0;
@@ -47,6 +59,10 @@
 		$this->assertEquals( $val, $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::add
+	 */
 	function test_add_get_null() {
 		$key = __FUNCTION__;
 		$val = null;
@@ -56,6 +72,10 @@
 		$this->assertEquals( '', $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::add
+	 */
 	function test_add() {
 		$key  = __FUNCTION__;
 		$val1 = 'val1';
@@ -69,6 +89,10 @@
 		$this->assertEquals( $val1, $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::replace
+	 */
 	function test_replace() {
 		$key  = __FUNCTION__;
 		$val  = 'val1';
@@ -83,6 +107,10 @@
 		$this->assertEquals( $val2, $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::set
+	 */
 	function test_set() {
 		$key  = __FUNCTION__;
 		$val1 = 'val1';
@@ -96,6 +124,10 @@
 		$this->assertEquals( $val2, $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::flush
+	 */
 	function test_flush() {
 		global $_wp_using_ext_object_cache;
 
@@ -114,7 +146,12 @@
 		$this->assertFalse( $this->cache->get( $key ) );
 	}
 
-	// Make sure objects are cloned going to and from the cache.
+	/**
+	 * Make sure objects are cloned going to and from the cache.
+	 *
+	 * @covers WP_Object_Cache::set
+	 * @covers WP_Object_Cache::get
+	 */
 	function test_object_refs() {
 		$key           = __FUNCTION__ . '_1';
 		$object_a      = new stdClass;
@@ -137,6 +174,10 @@
 		$this->assertEquals( 'bravo', $object_a->foo );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::incr
+	 */
 	function test_incr() {
 		$key = __FUNCTION__;
 
@@ -150,6 +191,10 @@
 		$this->assertEquals( 3, $this->cache->get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_cache_incr
+	 */
 	function test_wp_cache_incr() {
 		$key = __FUNCTION__;
 
@@ -163,6 +208,10 @@
 		$this->assertEquals( 3, wp_cache_get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::decr
+	 */
 	function test_decr() {
 		$key = __FUNCTION__;
 
@@ -182,6 +231,8 @@
 
 	/**
 	 * @ticket 21327
+	 *
+	 * @covers ::wp_cache_decr
 	 */
 	function test_wp_cache_decr() {
 		$key = __FUNCTION__;
@@ -200,6 +251,10 @@
 		$this->assertEquals( 0, wp_cache_get( $key ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::delete
+	 */
 	function test_delete() {
 		$key = __FUNCTION__;
 		$val = 'val';
@@ -215,6 +270,12 @@
 		$this->assertFalse( $this->cache->delete( $key, 'default' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_cache_delete
+	 * @covers ::wp_cache_get
+	 * @covers ::wp_cache_set
+	 */
 	function test_wp_cache_delete() {
 		$key = __FUNCTION__;
 		$val = 'val';
@@ -234,6 +295,10 @@
 		$this->assertFalse( wp_cache_delete( $key, 'default' ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Object_Cache::switch_to_blog
+	 */
 	function test_switch_to_blog() {
 		if ( ! method_exists( $this->cache, 'switch_to_blog' ) ) {
 			return;
@@ -280,6 +345,10 @@
 		$this->assertEquals( $val2, $this->cache->get( $key, 'global-cache-test' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_cache_init
+	 */
 	function test_wp_cache_init() {
 		$new_blank_cache_object = new WP_Object_Cache();
 		wp_cache_init();
@@ -294,6 +363,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::wp_cache_replace
+	 */
 	function test_wp_cache_replace() {
 		$key  = 'my-key';
 		$val1 = 'first-val';
@@ -318,6 +391,8 @@
 
 	/**
 	 * @ticket 20875
+	 *
+	 * @covers ::wp_cache_get_multiple
 	 */
 	public function test_get_multiple() {
 		wp_cache_set( 'foo1', 'bar', 'group1' );
Index: tests/phpunit/tests/canonical.php
===================================================================
--- tests/phpunit/tests/canonical.php	(revision 48816)
+++ tests/phpunit/tests/canonical.php	(working copy)
@@ -17,6 +17,8 @@
 
 	/**
 	 * @dataProvider data_canonical
+	 *
+	 * @covers ::redirect_canonical
 	 */
 	function test_canonical( $test_url, $expected, $ticket = 0, $expected_doing_it_wrong = array() ) {
 
@@ -232,6 +234,8 @@
 
 	/**
 	 * @ticket 16557
+	 *
+	 * @covers ::redirect_guess_404_permalink
 	 */
 	public function test_do_redirect_guess_404_permalink() {
 		// Test disable do_redirect_guess_404_permalink().
@@ -242,6 +246,8 @@
 
 	/**
 	 * @ticket 16557
+	 *
+	 * @covers ::redirect_guess_404_permalink
 	 */
 	public function test_pre_redirect_guess_404_permalink() {
 		// Test short-circuit filter.
@@ -257,6 +263,8 @@
 
 	/**
 	 * @ticket 16557
+	 *
+	 * @covers ::redirect_guess_404_permalink
 	 */
 	public function test_strict_redirect_guess_404_permalink() {
 		$post = self::factory()->post->create(
@@ -277,6 +285,8 @@
 
 	/**
 	 * @ticket 43745
+	 *
+	 * @covers ::redirect_canonical
 	 */
 	public function test_utf8_query_keys_canonical() {
 		$p = self::factory()->post->create(
Index: tests/phpunit/tests/category.php
===================================================================
--- tests/phpunit/tests/category.php	(revision 48816)
+++ tests/phpunit/tests/category.php	(working copy)
@@ -18,6 +18,8 @@
 	 * Validate get_all_category_ids
 	 *
 	 * @expectedDeprecated get_all_category_ids
+	 *
+	 * @covers ::get_all_category_ids
 	 */
 	function test_get_all_category_ids() {
 		// Ccreate categories.
@@ -34,6 +36,8 @@
 
 	/**
 	 * Validate get_category_by_slug function
+	 *
+	 * @covers ::get_category_by_slug
 	 */
 	function test_get_category_by_slug() {
 
@@ -64,6 +68,8 @@
 
 	/**
 	 * Validate _make_cat_compat function
+	 *
+	 * @covers ::_make_cat_compat
 	 */
 	function test__make_cat_compat() {
 
@@ -141,6 +147,8 @@
 
 	/**
 	 * Validate get_cat_name function
+	 *
+	 * @covers ::get_cat_name
 	 */
 	function test_get_cat_name() {
 
@@ -161,6 +169,8 @@
 
 	/**
 	 * Validate get_cat_name function
+	 *
+	 * @covers ::get_cat_ID
 	 */
 	function test_get_cat_ID() {
 
@@ -181,6 +191,8 @@
 
 	/**
 	 * Validate get_category_by_path function
+	 *
+	 * @covers ::get_category_by_path
 	 */
 	function test_get_category_by_path() {
 
Index: tests/phpunit/tests/comment-submission.php
===================================================================
--- tests/phpunit/tests/comment-submission.php	(revision 48816)
+++ tests/phpunit/tests/comment-submission.php	(working copy)
@@ -39,6 +39,9 @@
 		require_once ABSPATH . WPINC . '/class-phpass.php';
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_invalid_post_returns_error() {
 		$error = 'comment_id_not_found';
 
@@ -55,6 +58,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_post_with_closed_comments_returns_error() {
 
 		$error = 'comment_closed';
@@ -78,6 +84,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_trashed_post_returns_error() {
 
 		$error = 'comment_on_trash';
@@ -99,6 +108,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_draft_post_returns_error() {
 		$error = 'comment_on_draft';
 
@@ -124,6 +136,8 @@
 
 	/**
 	 * @ticket 39650
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_to_draft_post_returns_error_message_for_user_with_correct_caps() {
 		$error = 'comment_on_draft';
@@ -150,6 +164,9 @@
 		$this->assertNotEmpty( $comment->get_error_message() );
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_scheduled_post_returns_error() {
 
 		// Same error as commenting on a draft.
@@ -176,6 +193,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_password_required_post_returns_error() {
 
 		$error = 'comment_on_password_protected';
@@ -199,6 +219,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_password_protected_post_succeeds() {
 
 		$password = 'password';
@@ -227,6 +250,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_valid_comment_as_logged_in_user_succeeds() {
 
 		$user = self::factory()->user->create_and_get(
@@ -254,6 +280,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_valid_comment_anonymously_succeeds() {
 
 		$data    = array(
@@ -280,6 +309,8 @@
 	 * wp_handle_comment_submission() expects un-slashed data.
 	 *
 	 * @group slashes
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_handles_slashes_correctly_handles_slashes() {
 
@@ -300,6 +331,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_anonymously_to_private_post_returns_error() {
 
 		$error = 'comment_id_not_found';
@@ -321,6 +355,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_as_logged_in_user_to_inaccessible_private_post_returns_error() {
 
 		$error = 'comment_id_not_found';
@@ -351,6 +388,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_private_post_with_closed_comments_returns_correct_error() {
 
 		$error = 'comment_id_not_found';
@@ -382,6 +422,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_own_private_post_succeeds() {
 
 		wp_set_current_user( self::$author_id );
@@ -405,6 +448,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_to_accessible_private_post_succeeds() {
 
 		wp_set_current_user( self::$editor_id );
@@ -428,6 +474,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_anonymous_user_cannot_comment_unfiltered_html() {
 
 		$data    = array(
@@ -444,6 +493,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_unprivileged_user_cannot_comment_unfiltered_html() {
 
 		wp_set_current_user( self::$author_id );
@@ -462,6 +514,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_unprivileged_user_cannot_comment_unfiltered_html_even_with_valid_nonce() {
 
 		wp_set_current_user( self::$author_id );
@@ -486,6 +541,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_privileged_user_can_comment_unfiltered_html_with_valid_nonce() {
 
 		$this->assertFalse( defined( 'DISALLOW_UNFILTERED_HTML' ) );
@@ -518,6 +576,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_privileged_user_cannot_comment_unfiltered_html_without_valid_nonce() {
 
 		if ( is_multisite() ) {
@@ -542,6 +603,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_as_anonymous_user_when_registration_required_returns_error() {
 
 		$error = 'not_logged_in';
@@ -561,6 +625,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_with_no_name_when_name_email_required_returns_error() {
 
 		$error = 'require_name_email';
@@ -582,6 +649,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_with_no_email_when_name_email_required_returns_error() {
 
 		$error = 'require_name_email';
@@ -603,6 +673,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_with_invalid_email_when_name_email_required_returns_error() {
 
 		$error = 'require_valid_email';
@@ -625,6 +698,9 @@
 
 	}
 
+	/**
+	 * @covers ::wp_handle_comment_submission
+	 */
 	public function test_submitting_comment_with_no_comment_content_returns_error() {
 
 		$error = 'require_valid_comment';
@@ -644,6 +720,8 @@
 
 	/**
 	 * @ticket 10377
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_with_content_too_long_returns_error() {
 		$error = 'comment_content_column_length';
@@ -662,6 +740,8 @@
 
 	/**
 	 * @ticket 10377
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_with_author_too_long_returns_error() {
 		$error = 'comment_author_column_length';
@@ -680,6 +760,8 @@
 
 	/**
 	 * @ticket 10377
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_with_email_too_long_returns_error() {
 		$error = 'comment_author_email_column_length';
@@ -698,6 +780,8 @@
 
 	/**
 	 * @ticket 10377
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_with_url_too_long_returns_error() {
 		$error = 'comment_author_url_column_length';
@@ -717,6 +801,8 @@
 
 	/**
 	 * @ticket 49236
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_comment_with_empty_type_results_in_correct_type() {
 		$data    = array(
@@ -736,6 +822,8 @@
 
 	/**
 	 * @ticket 49236
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_inserting_comment_with_empty_type_results_in_correct_type() {
 		$data       = array(
@@ -756,6 +844,8 @@
 
 	/**
 	 * @ticket 34997
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_comment_submission_sends_all_expected_parameters_to_preprocess_comment_filter() {
 
@@ -798,6 +888,8 @@
 
 	/**
 	 * @ticket 36901
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_submitting_duplicate_comments() {
 		$data           = array(
@@ -814,6 +906,8 @@
 
 	/**
 	 * @ticket 36901
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_comments_flood() {
 		$data          = array(
@@ -833,6 +927,8 @@
 
 	/**
 	 * @ticket 36901
+	 *
+	 * @covers ::wp_handle_comment_submission
 	 */
 	public function test_comments_flood_user_is_admin() {
 		$user = self::factory()->user->create_and_get(
Index: tests/phpunit/tests/comment.php
===================================================================
--- tests/phpunit/tests/comment.php	(revision 48816)
+++ tests/phpunit/tests/comment.php	(working copy)
@@ -30,6 +30,11 @@
 		);
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_update_comment
+	 */
 	public function test_wp_update_comment() {
 		$post  = self::factory()->post->create_and_get(
 			array(
@@ -78,6 +83,8 @@
 
 	/**
 	 * @ticket 30627
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_updates_comment_type() {
 		$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => self::$post_id ) );
@@ -95,6 +102,8 @@
 
 	/**
 	 * @ticket 36784
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_updates_comment_meta() {
 		$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => self::$post_id ) );
@@ -114,6 +123,8 @@
 
 	/**
 	 * @ticket 30307
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_updates_user_id() {
 		$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => self::$post_id ) );
@@ -131,6 +142,8 @@
 
 	/**
 	 * @ticket 34954
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_with_no_post_id() {
 		$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => 0 ) );
@@ -152,6 +165,8 @@
 
 	/**
 	 * @ticket 39732
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_returns_false_for_invalid_comment_or_post_id() {
 		$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => self::$post_id ) );
@@ -175,6 +190,8 @@
 
 	/**
 	 * @ticket 39732
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_is_wp_error() {
 		$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => self::$post_id ) );
@@ -201,6 +218,11 @@
 		return new WP_Error( 'comment_wrong', 'wp_update_comment_data filter fails for this comment.', 500 );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::get_approved_comments
+	 */
 	public function test_get_approved_comments() {
 		$ca1 = self::factory()->comment->create(
 			array(
@@ -257,6 +279,8 @@
 
 	/**
 	 * @ticket 30412
+	 *
+	 * @covers ::get_approved_comments
 	 */
 	public function test_get_approved_comments_with_post_id_0_should_return_empty_array() {
 		$ca1 = self::factory()->comment->create(
@@ -273,6 +297,8 @@
 
 	/**
 	 * @ticket 14279
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_new_comment_respects_dates() {
 		$data = array(
@@ -296,6 +322,8 @@
 
 	/**
 	 * @ticket 14601
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_new_comment_respects_author_ip() {
 		$data = array(
@@ -317,6 +345,8 @@
 
 	/**
 	 * @ticket 14601
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_new_comment_respects_author_ip_empty_string() {
 		$data = array(
@@ -338,6 +368,8 @@
 
 	/**
 	 * @ticket 14601
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_new_comment_respects_comment_agent() {
 		$data = array(
@@ -360,6 +392,8 @@
 
 	/**
 	 * @ticket 14601
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_new_comment_should_trim_provided_comment_agent_to_254_chars() {
 		$data = array(
@@ -382,6 +416,8 @@
 
 	/**
 	 * @ticket 14601
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_new_comment_respects_comment_agent_empty_string() {
 		$data = array(
@@ -402,7 +438,9 @@
 		$this->assertEquals( $data['comment_agent'], $comment->comment_agent );
 	}
 
-
+	/**
+	 * @covers ::wp_new_comment
+	 */
 	public function test_comment_field_lengths() {
 		$data = array(
 			'comment_post_ID'      => self::$post_id,
@@ -424,6 +462,8 @@
 
 	/**
 	 * @ticket 32566
+	 *
+	 * @covers ::wp_notify_moderator
 	 */
 	public function test_wp_notify_moderator_should_not_throw_notice_when_post_author_is_0() {
 		$p = self::factory()->post->create(
@@ -441,6 +481,11 @@
 		$this->assertTrue( wp_notify_moderator( $c ) );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_new_comment_notify_postauthor
+	 */
 	public function test_wp_new_comment_notify_postauthor_should_send_email_when_comment_is_approved() {
 		$c = self::factory()->comment->create(
 			array(
@@ -452,6 +497,11 @@
 		$this->assertTrue( $sent );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_new_comment_notify_postauthor
+	 */
 	public function test_wp_new_comment_notify_postauthor_should_not_send_email_when_comment_is_unapproved() {
 		$c = self::factory()->comment->create(
 			array(
@@ -466,6 +516,8 @@
 
 	/**
 	 * @ticket 33587
+	 *
+	 * @covers ::wp_new_comment_notify_postauthor
 	 */
 	public function test_wp_new_comment_notify_postauthor_should_not_send_email_when_comment_has_been_marked_as_spam() {
 		$c = self::factory()->comment->create(
@@ -481,6 +533,8 @@
 
 	/**
 	 * @ticket 35006
+	 *
+	 * @covers ::wp_new_comment_notify_postauthor
 	 */
 	public function test_wp_new_comment_notify_postauthor_should_not_send_email_when_comment_has_been_trashed() {
 		$c = self::factory()->comment->create(
@@ -496,6 +550,8 @@
 
 	/**
 	 * @ticket 43805
+	 *
+	 * @covers ::wp_new_comment_notify_postauthor
 	 */
 	public function test_wp_new_comment_notify_postauthor_content_should_include_link_to_parent() {
 		$c1 = self::factory()->comment->create(
@@ -520,6 +576,8 @@
 
 	/**
 	 * @ticket 43805
+	 *
+	 * @covers ::wp_new_comment_notify_moderator
 	 */
 	public function test_wp_new_comment_notify_moderator_content_should_include_link_to_parent() {
 		$c1 = self::factory()->comment->create(
@@ -556,6 +614,8 @@
 
 	/**
 	 * @ticket 12431
+	 *
+	 * @covers ::get_comment_meta
 	 */
 	public function test_wp_new_comment_with_meta() {
 		$c = self::factory()->comment->create(
@@ -573,6 +633,8 @@
 
 	/**
 	 * @ticket 8071
+	 *
+	 * @covers WP_Comment::get_children
 	 */
 	public function test_wp_comment_get_children_should_fill_children() {
 		$c1 = self::factory()->comment->create(
@@ -633,6 +695,8 @@
 
 	/**
 	 * @ticket 27571
+	 *
+	 * @covers ::get_comment
 	 */
 	public function test_post_properties_should_be_lazyloaded() {
 		$c = self::factory()->comment->create( array( 'comment_post_ID' => self::$post_id ) );
@@ -684,6 +748,8 @@
 
 	/**
 	 * @ticket 761
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_notify_moderator_filter_moderation_notify_option_true_filter_false() {
 		$comment_data = $this->setup_notify_comment();
@@ -705,6 +771,8 @@
 
 	/**
 	 * @ticket 761
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_notify_moderator_filter_moderation_notify_option_false_filter_true() {
 		$comment_data = $this->setup_notify_comment();
@@ -726,6 +794,8 @@
 
 	/**
 	 * @ticket 761
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_notify_post_author_filter_comments_notify_option_true_filter_false() {
 
@@ -748,6 +818,8 @@
 
 	/**
 	 * @ticket 761
+	 *
+	 * @covers ::wp_new_comment
 	 */
 	public function test_wp_notify_post_author_filter_comments_notify_option_false_filter_true() {
 		$comment_data = $this->setup_notify_comment();
@@ -852,6 +924,11 @@
 		return $email_sent_when_comment_approved || $email_sent_when_comment_added;
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::_close_comments_for_old_post
+	 */
 	public function test_close_comments_for_old_post() {
 		update_option( 'close_comments_for_old_posts', true );
 		// Close comments more than one day old.
@@ -867,6 +944,11 @@
 		$this->assertTrue( $new_post_comment_status );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::_close_comments_for_old_post
+	 */
 	public function test_close_comments_for_old_post_undated_draft() {
 		$draft_id             = self::factory()->post->create(
 			array(
@@ -881,6 +963,8 @@
 
 	/**
 	 * @ticket 35276
+	 *
+	 * @covers ::wp_update_comment
 	 */
 	public function test_wp_update_comment_author_id_and_agent() {
 
@@ -917,6 +1001,9 @@
 		$this->assertSame( 'SHIELD_AGENT', $updated->comment_agent );
 	}
 
+	/**
+	 * @covers ::wp_get_comment_fields_max_lengths
+	 */
 	public function test_wp_get_comment_fields_max_lengths() {
 		$expected = array(
 			'comment_author'       => 245,
@@ -937,6 +1024,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43442
+	 *
+	 * @covers ::wp_comments_personal_data_eraser
 	 */
 	public function test_wp_comments_personal_data_eraser() {
 
@@ -994,6 +1083,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43442
+	 *
+	 * @covers ::wp_comments_personal_data_eraser
 	 */
 	public function test_wp_comments_personal_data_eraser_empty_first_page_output() {
 
@@ -1013,6 +1104,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43442
+	 *
+	 * @covers ::wp_comments_personal_data_eraser
 	 */
 	public function test_wp_comments_personal_data_eraser_non_empty_first_page_output() {
 
@@ -1045,6 +1138,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43442
+	 *
+	 * @covers ::wp_comments_personal_data_eraser
 	 */
 	public function test_wp_comments_personal_data_eraser_empty_second_page_output() {
 
@@ -1077,6 +1172,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43442
+	 *
+	 * @covers ::wp_comments_personal_data_eraser
 	 */
 	public function test_wp_anonymize_comment_filter_to_prevent_comment_anonymization() {
 
@@ -1114,6 +1211,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43442
+	 *
+	 * @covers ::wp_comments_personal_data_eraser
 	 */
 	public function test_wp_anonymize_comment_filter_to_prevent_comment_anonymization_with_custom_message() {
 
@@ -1179,6 +1278,11 @@
 		$this->assertSame( 'Bar', $comment->comment_author );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_trash_comment
+	 */
 	public function test_trash_should_invalidate_comment_cache() {
 		global $wpdb;
 
@@ -1193,6 +1297,11 @@
 		$this->assertSame( 'trash', $comment->comment_approved );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_untrash_comment
+	 */
 	public function test_untrash_should_invalidate_comment_cache() {
 		global $wpdb;
 
@@ -1209,6 +1318,11 @@
 		$this->assertSame( '1', $comment->comment_approved );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_spam_comment
+	 */
 	public function test_spam_should_invalidate_comment_cache() {
 		global $wpdb;
 
@@ -1223,6 +1337,11 @@
 		$this->assertSame( 'spam', $comment->comment_approved );
 	}
 
+	/**
+	 *
+	 *
+	 * @covers ::wp_unspam_comment
+	 */
 	public function test_unspam_should_invalidate_comment_cache() {
 		global $wpdb;
 
@@ -1244,6 +1363,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43440
+	 *
+	 * @covers ::wp_comments_personal_data_exporter
 	 */
 	public function test_wp_comments_personal_data_exporter() {
 		$args = array(
@@ -1290,6 +1411,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43440
+	 *
+	 * @covers ::wp_comments_personal_data_exporter
 	 */
 	public function test_wp_comments_personal_data_exporter_no_comments_found() {
 
@@ -1308,6 +1431,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43440
+	 *
+	 * @covers ::wp_comments_personal_data_exporter
 	 */
 	public function test_wp_comments_personal_data_exporter_empty_comment_prop() {
 		$args = array(
@@ -1339,6 +1464,8 @@
 	 *
 	 * @group privacy
 	 * @ticket 43440
+	 *
+	 * @covers ::wp_comments_personal_data_exporter
 	 */
 	public function test_wp_comments_personal_data_exporter_empty_second_page() {
 		$args = array(
Index: tests/phpunit/tests/compat.php
===================================================================
--- tests/phpunit/tests/compat.php	(revision 48816)
+++ tests/phpunit/tests/compat.php	(working copy)
@@ -34,6 +34,8 @@
 
 	/**
 	 * @dataProvider utf8_string_lengths
+	 *
+	 * @covers ::_mb_strlen
 	 */
 	function test_mb_strlen( $string, $expected_character_length ) {
 		$this->assertEquals( $expected_character_length, _mb_strlen( $string, 'UTF-8' ) );
@@ -41,6 +43,8 @@
 
 	/**
 	 * @dataProvider utf8_string_lengths
+	 *
+	 * @covers ::_mb_strlen
 	 */
 	function test_mb_strlen_via_regex( $string, $expected_character_length ) {
 		_wp_can_use_pcre_u( false );
@@ -50,6 +54,8 @@
 
 	/**
 	 * @dataProvider utf8_string_lengths
+	 *
+	 * @covers ::_mb_strlen
 	 */
 	function test_8bit_mb_strlen( $string, $expected_character_length, $expected_byte_length ) {
 		$this->assertEquals( $expected_byte_length, _mb_strlen( $string, '8bit' ) );
@@ -57,6 +63,8 @@
 
 	/**
 	 * @dataProvider utf8_substrings
+	 *
+	 * @covers ::_mb_substr
 	 */
 	function test_mb_substr( $string, $start, $length, $expected_character_substring ) {
 		$this->assertEquals( $expected_character_substring, _mb_substr( $string, $start, $length, 'UTF-8' ) );
@@ -64,6 +72,8 @@
 
 	/**
 	 * @dataProvider utf8_substrings
+	 *
+	 * @covers ::_mb_substr
 	 */
 	function test_mb_substr_via_regex( $string, $start, $length, $expected_character_substring ) {
 		_wp_can_use_pcre_u( false );
@@ -73,11 +83,17 @@
 
 	/**
 	 * @dataProvider utf8_substrings
+	 *
+	 * @covers ::_mb_substr
 	 */
 	function test_8bit_mb_substr( $string, $start, $length, $expected_character_substring, $expected_byte_substring ) {
 		$this->assertEquals( $expected_byte_substring, _mb_substr( $string, $start, $length, '8bit' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::_mb_substr
+	 */
 	function test_mb_substr_phpcore() {
 		/* https://github.com/php/php-src/blob/php-5.6.8/ext/mbstring/tests/mb_substr_basic.phpt */
 		$string_ascii = 'ABCDEF';
@@ -164,16 +180,28 @@
 
 	}
 
+	/**
+	 *
+	 * @covers ::_hash_hmac
+	 */
 	function test_hash_hmac_simple() {
 		$this->assertEquals( '140d1cb79fa12e2a31f32d35ad0a2723', _hash_hmac( 'md5', 'simple', 'key' ) );
 		$this->assertEquals( '993003b95758e0ac2eba451a4c5877eb1bb7b92a', _hash_hmac( 'sha1', 'simple', 'key' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::_hash_hmac
+	 */
 	function test_hash_hmac_padding() {
 		$this->assertEquals( '3c1399103807cf12ec38228614416a8c', _hash_hmac( 'md5', 'simple', '65 character key 65 character key 65 character key 65 character k' ) );
 		$this->assertEquals( '4428826d20003e309d6c2a6515891370daf184ea', _hash_hmac( 'sha1', 'simple', '65 character key 65 character key 65 character key 65 character k' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::_hash_hmac
+	 */
 	function test_hash_hmac_output() {
 		$this->assertEquals( array( 1 => '140d1cb79fa12e2a31f32d35ad0a2723' ), unpack( 'H32', _hash_hmac( 'md5', 'simple', 'key', true ) ) );
 		$this->assertEquals( array( 1 => '993003b95758e0ac2eba451a4c5877eb1bb7b92a' ), unpack( 'H40', _hash_hmac( 'sha1', 'simple', 'key', true ) ) );
@@ -181,6 +209,9 @@
 
 	/**
 	 * @expectedException PHPUnit_Framework_Error_Deprecated
+	 *
+	 * @covers Services_JSON::encodeUnsafe
+	 * @covers Services_JSON::decode
 	 */
 	function test_json_encode_decode() {
 		require_once ABSPATH . WPINC . '/class-json.php';
@@ -194,6 +225,8 @@
 	 * Test that is_countable() is always available (either from PHP or WP).
 	 *
 	 * @ticket 43583
+	 *
+	 * @covers ::is_countable
 	 */
 	function test_is_countable_availability() {
 		$this->assertTrue( function_exists( 'is_countable' ) );
@@ -208,6 +241,8 @@
 	 *
 	 * @param mixed $variable     Variable to check.
 	 * @param bool  $is_countable The expected return value of PHP 7.3 is_countable() function.
+	 *
+	 * @covers ::is_countable
 	 */
 	function test_is_countable_functionality( $variable, $is_countable ) {
 		$this->assertSame( is_countable( $variable ), $is_countable );
@@ -243,6 +278,8 @@
 	 * Test is_countable() polyfill for ResourceBundle.
 	 *
 	 * @ticket 43583
+	 *
+	 * @covers ::is_countable
 	 */
 	function test_is_countable_ResourceBundle() {
 		if ( ! class_exists( 'ResourceBundle' ) ) {
@@ -256,6 +293,8 @@
 	 * Test is_countable() polyfill for SimpleXMLElement.
 	 *
 	 * @ticket 43583
+	 *
+	 * @covers ::is_countable
 	 */
 	function test_is_countable_SimpleXMLElement() {
 		if ( ! class_exists( 'SimpleXMLElement' ) ) {
@@ -269,6 +308,8 @@
 	 * Test that is_iterable() is always available (either from PHP or WP).
 	 *
 	 * @ticket 43619
+	 *
+	 * @covers ::is_iterable
 	 */
 	function test_is_iterable_availability() {
 		$this->assertTrue( function_exists( 'is_iterable' ) );
@@ -283,6 +324,8 @@
 	 *
 	 * @param mixed $variable    Variable to check.
 	 * @param bool  $is_iterable The expected return value of PHP 7.1 is_iterable() function.
+	 *
+	 * @covers ::is_iterable
 	 */
 	function test_is_iterable_functionality( $variable, $is_iterable ) {
 		$this->assertSame( is_iterable( $variable ), $is_iterable );
Index: tests/phpunit/tests/cron.php
===================================================================
--- tests/phpunit/tests/cron.php	(revision 48816)
+++ tests/phpunit/tests/cron.php	(working copy)
@@ -30,6 +30,10 @@
 		parent::tearDown();
 	}
 
+	/**
+	 *
+	 * @covers ::wp_get_schedule
+	 */
 	function test_wp_get_schedule_empty() {
 		// Nothing scheduled.
 		$hook = __FUNCTION__;
@@ -36,6 +40,10 @@
 		$this->assertFalse( wp_get_schedule( $hook ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_schedule_single_event
+	 */
 	function test_schedule_event_single() {
 		// Schedule an event and make sure it's returned by wp_next_scheduled().
 		$hook      = __FUNCTION__;
@@ -50,6 +58,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers ::wp_schedule_single_event
+	 */
 	function test_schedule_event_single_args() {
 		// Schedule an event with arguments and make sure it's returned by wp_next_scheduled().
 		$hook      = 'event';
@@ -68,6 +80,10 @@
 		$this->assertEquals( '', wp_get_schedule( $hook, $args ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_schedule_event
+	 */
 	function test_schedule_event() {
 		// Schedule an event and make sure it's returned by wp_next_scheduled().
 		$hook      = __FUNCTION__;
@@ -82,6 +98,10 @@
 		$this->assertEquals( $recur, wp_get_schedule( $hook ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_schedule_event
+	 */
 	function test_schedule_event_args() {
 		// Schedule an event and make sure it's returned by wp_next_scheduled().
 		$hook      = 'event';
@@ -101,6 +121,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers ::wp_unschedule_event
+	 */
 	function test_unschedule_event() {
 		// Schedule an event and make sure it's returned by wp_next_scheduled().
 		$hook      = __FUNCTION__;
@@ -115,6 +139,10 @@
 		$this->assertEquals( false, wp_next_scheduled( $hook ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_clear_scheduled_hook
+	 */
 	function test_clear_schedule() {
 		$hook = __FUNCTION__;
 		$args = array( 'arg1' );
@@ -142,6 +170,10 @@
 		$this->assertFalse( wp_next_scheduled( $hook, $args ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_clear_scheduled_hook
+	 */
 	function test_clear_undefined_schedule() {
 		$hook = __FUNCTION__;
 		$args = array( 'arg1' );
@@ -154,6 +186,10 @@
 		$this->assertSame( 0, $hook_unscheduled );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_clear_scheduled_hook
+	 */
 	function test_clear_schedule_multiple_args() {
 		$hook = __FUNCTION__;
 		$args = array( 'arg1', 'arg2' );
@@ -182,6 +218,8 @@
 
 	/**
 	 * @ticket 10468
+	 *
+	 * @covers ::wp_clear_scheduled_hook
 	 */
 	function test_clear_schedule_new_args() {
 		$hook       = __FUNCTION__;
@@ -220,6 +258,8 @@
 
 	/**
 	 * @ticket 18997
+	 *
+	 * @covers ::wp_clear_scheduled_hook
 	 */
 	function test_unschedule_hook() {
 		$hook = __FUNCTION__;
@@ -240,7 +280,10 @@
 		$this->assertSame( 4, $unschedule_hook );
 		$this->assertFalse( wp_next_scheduled( $hook ) );
 	}
-
+	/**
+	 *
+	 * @covers ::wp_clear_scheduled_hook
+	 */
 	function test_unschedule_undefined_hook() {
 		$hook           = __FUNCTION__;
 		$unrelated_hook = __FUNCTION__ . '_two';
@@ -261,6 +304,8 @@
 
 	/**
 	 * @ticket 6966
+	 *
+	 * @covers ::wp_schedule_single_event
 	 */
 	function test_duplicate_event() {
 		// Duplicate events close together should be skipped.
@@ -280,6 +325,8 @@
 
 	/**
 	 * @ticket 6966
+	 *
+	 * @covers ::wp_schedule_single_event
 	 */
 	function test_not_duplicate_event() {
 		// Duplicate events far apart should work normally.
@@ -300,6 +347,10 @@
 		$this->assertEquals( $ts1, wp_next_scheduled( $hook, $args ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_schedule_single_event
+	 */
 	function test_not_duplicate_event_reversed() {
 		// Duplicate events far apart should work normally regardless of order.
 		$hook = __FUNCTION__;
@@ -324,6 +375,8 @@
 	 * modification of the cron_array_option.
 	 *
 	 * @ticket 32656
+	 *
+	 * @covers ::wp_schedule_single_event
 	 */
 	function test_pre_schedule_event_filter() {
 		$hook = __FUNCTION__;
@@ -376,6 +429,8 @@
 	 * modification of the cron_array_option.
 	 *
 	 * @ticket 32656
+	 *
+	 * @covers ::wp_schedule_event
 	 */
 	function test_pre_reschedule_event_filter() {
 		$hook = __FUNCTION__;
@@ -400,6 +455,8 @@
 	 * modification of the cron_array_option.
 	 *
 	 * @ticket 32656
+	 *
+	 * @covers ::wp_unschedule_event
 	 */
 	function test_pre_unschedule_event_filter() {
 		$hook = __FUNCTION__;
@@ -424,6 +481,8 @@
 	 * modification of the cron_array_option.
 	 *
 	 * @ticket 32656
+	 *
+	 * @covers ::wp_clear_scheduled_hook
 	 */
 	function test_pre_clear_scheduled_hook_filters() {
 		$hook = __FUNCTION__;
@@ -455,6 +514,8 @@
 	 * return a filtered value as expected.
 	 *
 	 * @ticket 32656
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_pre_scheduled_event_hooks() {
 		add_filter( 'pre_get_scheduled_event', array( $this, 'filter_pre_scheduled_event_hooks' ) );
@@ -489,6 +550,8 @@
 	 * When a timestamp is specified, a particular event should be returned.
 	 *
 	 * @ticket 45976.
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_get_scheduled_event_singles() {
 		$hook    = __FUNCTION__;
@@ -532,6 +595,8 @@
 	 * When a timestamp is specified, a particular event should be returned.
 	 *
 	 * @ticket 45976.
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_get_scheduled_event_recurring() {
 		$hook     = __FUNCTION__;
@@ -576,6 +641,8 @@
 	 * Ensure wp_get_scheduled_event() returns false when expected.
 	 *
 	 * @ticket 45976.
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_get_scheduled_event_false() {
 		$hook = __FUNCTION__;
@@ -601,6 +668,8 @@
 	 * Ensure any past event counts as a duplicate.
 	 *
 	 * @ticket 44818
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_duplicate_past_event() {
 		$hook = __FUNCTION__;
@@ -623,6 +692,8 @@
 	 * Ensure any near future event counts as a duplicate.
 	 *
 	 * @ticket 44818
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_duplicate_near_future_event() {
 		$hook = __FUNCTION__;
@@ -645,6 +716,8 @@
 	 * Duplicate future events are disallowed.
 	 *
 	 * @ticket 44818
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_duplicate_future_event() {
 		$hook = __FUNCTION__;
@@ -665,6 +738,8 @@
 	 * Future events are allowed.
 	 *
 	 * @ticket 44818
+	 *
+	 * @covers ::wp_get_scheduled_event
 	 */
 	function test_not_duplicate_future_event() {
 		$hook = __FUNCTION__;
Index: tests/phpunit/tests/db.php
===================================================================
--- tests/phpunit/tests/db.php	(revision 48816)
+++ tests/phpunit/tests/db.php	(working copy)
@@ -58,6 +58,8 @@
 	 * Test that WPDB will reconnect when the DB link dies
 	 *
 	 * @ticket 5932
+	 *
+	 * @covers wpdb::db_connect
 	 */
 	public function test_db_reconnect() {
 		global $wpdb;
@@ -82,6 +84,8 @@
 	 * @global mixed $wpdb
 	 *
 	 * @ticket 19861
+	 *
+	 * @covers wpdb::update
 	 */
 	public function test_locale_floats() {
 		global $wpdb;
@@ -128,6 +132,8 @@
 
 	/**
 	 * @ticket 10041
+	 *
+	 * @covers wpdb::esc_like
 	 */
 	function test_esc_like() {
 		global $wpdb;
@@ -164,6 +170,8 @@
 	 * @param $data string The haystack, raw.
 	 * @param $like string The like phrase, raw.
 	 * @param $result string The expected comparison result; '1' = true, '0' = false
+	 *
+	 * @covers wpdb::esc_like
 	 */
 	function test_like_query( $data, $like, $result ) {
 		global $wpdb;
@@ -227,6 +235,8 @@
 
 	/**
 	 * @ticket 18510
+	 *
+	 * @coversNothing
 	 */
 	function test_wpdb_supposedly_protected_properties() {
 		global $wpdb;
@@ -243,6 +253,8 @@
 
 	/**
 	 * @ticket 21212
+	 *
+	 * @coversNothing
 	 */
 	function test_wpdb_actually_protected_properties() {
 		global $wpdb;
@@ -274,6 +286,9 @@
 	 * Test that an escaped %%f is not altered
 	 *
 	 * @ticket 19861
+	 *
+	 * @covers wpdb::placeholder_escape
+	 * @covers wpdb::remove_placeholder_escape
 	 */
 	public function test_double_escaped_placeholders() {
 		global $wpdb;
@@ -289,6 +304,8 @@
 	 * Test that SQL modes are set correctly
 	 *
 	 * @ticket 26847
+	 *
+	 * @covers wpdb::set_sql_mode
 	 */
 	function test_set_sql_mode() {
 		global $wpdb;
@@ -309,6 +326,8 @@
 	 * Test that incompatible SQL modes are blocked
 	 *
 	 * @ticket 26847
+	 *
+	 * @covers wpdb::set_sql_mode
 	 */
 	function test_set_incompatible_sql_mode() {
 		global $wpdb;
@@ -327,6 +346,8 @@
 	 * Test that incompatible SQL modes can be changed
 	 *
 	 * @ticket 26847
+	 *
+	 * @covers wpdb::set_sql_mode
 	 */
 	function test_set_allowed_incompatible_sql_mode() {
 		global $wpdb;
@@ -360,6 +381,8 @@
 	/**
 	 * @ticket 25604
 	 * @expectedIncorrectUsage wpdb::prepare
+	 *
+	 * @covers wpdb::prepare
 	 */
 	function test_prepare_without_arguments() {
 		global $wpdb;
@@ -370,6 +393,10 @@
 		$this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0", $prepared );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::prepare
+	 */
 	function test_prepare_sprintf() {
 		global $wpdb;
 
@@ -379,6 +406,8 @@
 
 	/**
 	 * @expectedIncorrectUsage wpdb::prepare
+	 *
+	 * @covers wpdb::prepare
 	 */
 	function test_prepare_sprintf_invalid_args() {
 		global $wpdb;
@@ -392,6 +421,10 @@
 		$this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0 AND user_login = 'admin'", $prepared );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::prepare
+	 */
 	function test_prepare_vsprintf() {
 		global $wpdb;
 
@@ -401,6 +434,8 @@
 
 	/**
 	 * @expectedIncorrectUsage wpdb::prepare
+	 *
+	 * @covers wpdb::prepare
 	 */
 	function test_prepare_vsprintf_invalid_args() {
 		global $wpdb;
@@ -418,6 +453,8 @@
 	 * @ticket 42040
 	 * @dataProvider data_prepare_incorrect_arg_count
 	 * @expectedIncorrectUsage wpdb::prepare
+	 *
+	 * @covers wpdb::prepare
 	 */
 	public function test_prepare_incorrect_arg_count( $query, $args, $expected ) {
 		global $wpdb;
@@ -479,12 +516,19 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers wpdb::db_version
+	 */
 	function test_db_version() {
 		global $wpdb;
 
 		$this->assertTrue( version_compare( $wpdb->db_version(), '5.0', '>=' ) );
 	}
-
+	/**
+	 *
+	 * @covers wpdb::get_caller
+	 */
 	function test_get_caller() {
 		global $wpdb;
 		$str    = $wpdb->get_caller();
@@ -493,6 +537,10 @@
 		$this->assertEquals( $called, end( $calls ) );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::has_cap
+	 */
 	function test_has_cap() {
 		global $wpdb;
 		$this->assertTrue( $wpdb->has_cap( 'collation' ) );
@@ -513,6 +561,8 @@
 
 	/**
 	 * @expectedDeprecated supports_collation
+	 *
+	 * @covers wpdb::supports_collation
 	 */
 	function test_supports_collation() {
 		global $wpdb;
@@ -519,6 +569,10 @@
 		$this->assertTrue( $wpdb->supports_collation() );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::check_database_version
+	 */
 	function test_check_database_version() {
 		global $wpdb;
 		$this->assertEmpty( $wpdb->check_database_version() );
@@ -526,12 +580,18 @@
 
 	/**
 	 * @expectedException WPDieException
+	 *
+	 * @covers wpdb::bail
 	 */
 	function test_bail() {
 		global $wpdb;
 		$wpdb->bail( 'Database is dead.' );
 	}
-
+	/**
+	 *
+	 * @covers wpdb::timer_start
+	 * @covers wpdb::timer_stop
+	 */
 	function test_timers() {
 		global $wpdb;
 
@@ -542,7 +602,10 @@
 		$this->assertNotEquals( $wpdb->time_start, $stop );
 		$this->assertGreaterThan( $stop, $wpdb->time_start );
 	}
-
+	/**
+	 *
+	 * @covers wpdb::get_col_info
+	 */
 	function test_get_col_info() {
 		global $wpdb;
 
@@ -552,7 +615,11 @@
 		$this->assertEquals( array( $wpdb->users ), $wpdb->get_col_info( 'table' ) );
 		$this->assertEquals( $wpdb->users, $wpdb->get_col_info( 'table', 0 ) );
 	}
-
+	/**
+	 *
+	 * @covers wpdb::query
+	 * @covers wpdb::delete
+	 */
 	function test_query_and_delete() {
 		global $wpdb;
 		$rows = $wpdb->query( "INSERT INTO $wpdb->users (display_name) VALUES ('Walter Sobchak')" );
@@ -561,7 +628,11 @@
 		$d_rows = $wpdb->delete( $wpdb->users, array( 'ID' => $wpdb->insert_id ) );
 		$this->assertEquals( 1, $d_rows );
 	}
-
+	/**
+	 *
+	 * @covers wpdb::query
+	 * @covers wpdb::get_row
+	 */
 	function test_get_row() {
 		global $wpdb;
 		$rows = $wpdb->query( "INSERT INTO $wpdb->users (display_name) VALUES ('Walter Sobchak')" );
@@ -584,6 +655,8 @@
 	 * @dataProvider data_test_get_col
 	 *
 	 * @ticket 45299
+	 *
+	 * @covers wpdb::get_col
 	 */
 	function test_get_col( $query, $expected, $last_result, $column ) {
 		global $wpdb;
@@ -664,6 +737,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers wpdb::replace
+	 */
 	function test_replace() {
 		global $wpdb;
 		$rows1 = $wpdb->insert( $wpdb->users, array( 'display_name' => 'Walter Sobchak' ) );
@@ -691,6 +768,8 @@
 	 * wpdb::update() requires a WHERE condition.
 	 *
 	 * @ticket 26106
+	 *
+	 * @covers wpdb::update
 	 */
 	function test_empty_where_on_update() {
 		global $wpdb;
@@ -713,6 +792,8 @@
 	 * mysqli_ incorrect flush and further sync issues.
 	 *
 	 * @ticket 28155
+	 *
+	 * @coversNothing
 	 */
 	function test_mysqli_flush_sync() {
 		global $wpdb;
@@ -873,6 +954,8 @@
 	/**
 	 * @dataProvider data_get_table_from_query
 	 * @ticket 21212
+	 *
+	 * @covers wpdb::get_table_from_query
 	 */
 	function test_get_table_from_query( $query, $table ) {
 		$this->assertEquals( $table, self::$_wpdb->get_table_from_query( $query ) );
@@ -888,6 +971,8 @@
 	/**
 	 * @dataProvider data_get_table_from_query_false
 	 * @ticket 21212
+	 *
+	 * @covers wpdb::get_table_from_query
 	 */
 	function test_get_table_from_query_false( $query ) {
 		$this->assertFalse( self::$_wpdb->get_table_from_query( $query ) );
@@ -915,6 +1000,8 @@
 	/**
 	 * @dataProvider data_get_escaped_table_from_show_query
 	 * @ticket 38751
+	 *
+	 * @covers wpdb::get_table_from_query
 	 */
 	function test_get_escaped_table_from_show_query( $query, $table ) {
 		$this->assertEquals( $table, self::$_wpdb->get_table_from_query( $query ) );
@@ -1030,6 +1117,8 @@
 	/**
 	 * @dataProvider data_process_field_formats
 	 * @ticket 21212
+	 *
+	 * @covers wpdb::process_field_formats
 	 */
 	function test_process_field_formats( $data, $format, $expected, $message ) {
 		$actual = self::$_wpdb->process_field_formats( $data, $format );
@@ -1038,6 +1127,8 @@
 
 	/**
 	 * @ticket 21212
+	 *
+	 * @covers wpdb::process_fields
 	 */
 	function test_process_fields() {
 		global $wpdb;
@@ -1068,6 +1159,8 @@
 	/**
 	 * @ticket 21212
 	 * @depends test_process_fields
+	 *
+	 * @covers wpdb::process_fields
 	 */
 	function test_process_fields_on_nonexistent_table( $data ) {
 		self::$_wpdb->suppress_errors( true );
@@ -1078,6 +1171,8 @@
 
 	/**
 	 * @ticket 21212
+	 *
+	 * @covers wpdb::get_table_charset
 	 */
 	function test_pre_get_table_charset_filter() {
 		add_filter( 'pre_get_table_charset', array( $this, 'filter_pre_get_table_charset' ), 10, 2 );
@@ -1092,6 +1187,8 @@
 
 	/**
 	 * @ticket 21212
+	 *
+	 * @covers wpdb::get_col_charset
 	 */
 	function test_pre_get_col_charset_filter() {
 		add_filter( 'pre_get_col_charset', array( $this, 'filter_pre_get_col_charset' ), 10, 3 );
@@ -1106,6 +1203,8 @@
 
 	/**
 	 * @ticket 15158
+	 *
+	 * @covers wpdb::insert
 	 */
 	function test_null_insert() {
 		global $wpdb;
@@ -1128,6 +1227,8 @@
 
 	/**
 	 * @ticket 15158
+	 *
+	 * @covers wpdb::insert
 	 */
 	function test_null_update_value() {
 		global $wpdb;
@@ -1166,6 +1267,8 @@
 
 	/**
 	 * @ticket 15158
+	 *
+	 * @covers wpdb::update
 	 */
 	function test_null_update_where() {
 		global $wpdb;
@@ -1204,6 +1307,8 @@
 
 	/**
 	 * @ticket 15158
+	 *
+	 * @covers wpdb::delete
 	 */
 	function test_null_delete() {
 		global $wpdb;
@@ -1240,6 +1345,8 @@
 
 	/**
 	 * @ticket 34903
+	 *
+	 * @covers wpdb::close
 	 */
 	function test_close() {
 		global $wpdb;
@@ -1259,6 +1366,8 @@
 
 	/**
 	 * @ticket 36917
+	 *
+	 * @covers wpdb::determine_charset
 	 */
 	function test_charset_not_determined_when_disconnected() {
 		global $wpdb;
@@ -1277,6 +1386,8 @@
 
 	/**
 	 * @ticket 36917
+	 *
+	 * @covers wpdb::determine_charset
 	 */
 	function test_charset_switched_to_utf8mb4() {
 		global $wpdb;
@@ -1296,6 +1407,8 @@
 	/**
 	 * @ticket 32105
 	 * @ticket 36917
+	 *
+	 * @covers wpdb::determine_charset
 	 */
 	function test_collate_switched_to_utf8mb4_520() {
 		global $wpdb;
@@ -1315,6 +1428,8 @@
 	/**
 	 * @ticket 32405
 	 * @ticket 36917
+	 *
+	 * @covers wpdb::determine_charset
 	 */
 	function test_non_unicode_collations() {
 		global $wpdb;
@@ -1333,6 +1448,8 @@
 
 	/**
 	 * @ticket 37982
+	 *
+	 * @covers wpdb::determine_charset
 	 */
 	function test_charset_switched_to_utf8() {
 		global $wpdb;
@@ -1352,6 +1469,8 @@
 
 	/**
 	 * @dataProvider data_prepare_with_placeholders
+	 *
+	 * @covers wpdb::prepare
 	 */
 	function test_prepare_with_placeholders_and_individual_args( $sql, $values, $incorrect_usage, $expected ) {
 		global $wpdb;
@@ -1371,6 +1490,8 @@
 
 	/**
 	 * @dataProvider data_prepare_with_placeholders
+	 *
+	 * @covers wpdb::prepare
 	 */
 	function test_prepare_with_placeholders_and_array_args( $sql, $values, $incorrect_usage, $expected ) {
 		global $wpdb;
@@ -1565,7 +1686,12 @@
 
 	/**
 	 * @dataProvider data_escape_and_prepare
+	 *
+	 * @covers ::esc_sql
+	/**
+	 * @coversNothing
 	 */
+	 */
 	function test_escape_and_prepare( $escape, $sql, $values, $incorrect_usage, $expected ) {
 		global $wpdb;
 
@@ -1612,6 +1738,8 @@
 
 	/**
 	 * @expectedIncorrectUsage wpdb::prepare
+	 *
+	 * @covers wpdb::prepare
 	 */
 	function test_double_prepare() {
 		global $wpdb;
@@ -1623,6 +1751,10 @@
 		$this->assertNull( $query );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::prepare
+	 */
 	function test_prepare_numeric_placeholders_float_args() {
 		global $wpdb;
 
@@ -1638,6 +1770,10 @@
 		$this->assertContains( ' second=2.2', $actual );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::prepare
+	 */
 	function test_prepare_numeric_placeholders_float_array() {
 		global $wpdb;
 
@@ -1652,6 +1788,10 @@
 		$this->assertContains( ' second=2.2', $actual );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::prepare
+	 */
 	function test_query_unescapes_placeholders() {
 		global $wpdb;
 
@@ -1671,6 +1811,10 @@
 		$this->assertEquals( $value, $actual );
 	}
 
+	/**
+	 *
+	 * @covers wpdb::placeholder_escape
+	 */
 	function test_esc_sql_with_unsupported_placeholder_type() {
 		global $wpdb;
 
@@ -1684,6 +1828,8 @@
 	/**
 	 * @dataProvider parse_db_host_data_provider
 	 * @ticket 41722
+	 *
+	 * @covers wpdb::parse_db_host
 	 */
 	public function test_parse_db_host( $host_string, $expect_bail, $host, $port, $socket, $is_ipv6 ) {
 		global $wpdb;
Index: tests/phpunit/tests/dbdelta.php
===================================================================
--- tests/phpunit/tests/dbdelta.php	(revision 48816)
+++ tests/phpunit/tests/dbdelta.php	(working copy)
@@ -96,6 +96,8 @@
 
 	/**
 	 * Test table creation.
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_creating_a_table() {
 
@@ -133,6 +135,8 @@
 
 	/**
 	 * Test that it does nothing for an existing table.
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_existing_table() {
 
@@ -155,6 +159,8 @@
 
 	/**
 	 * Test the column type is updated.
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_column_type_change() {
 
@@ -184,6 +190,8 @@
 
 	/**
 	 * Test new column added.
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_column_added() {
 
@@ -218,6 +226,8 @@
 	 * Test that it does nothing when a column is removed.
 	 *
 	 * @ticket 26801
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_columns_arent_removed() {
 
@@ -242,6 +252,8 @@
 
 	/**
 	 * Test that nothing happens with $execute is false.
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_no_execution() {
 
@@ -275,6 +287,8 @@
 
 	/**
 	 * Test inserting into the database
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_insert_into_table() {
 		global $wpdb;
@@ -296,6 +310,8 @@
 	 * Test that FULLTEXT indexes are detected.
 	 *
 	 * @ticket 14445
+	 *
+	 * @covers ::dbDelta
 	 */
 	public function test_fulltext_index() {
 		global $wpdb;
@@ -401,6 +417,8 @@
 
 	/**
 	 * @ticket 31869
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_truncated_index() {
 		global $wpdb;
@@ -441,6 +459,8 @@
 
 	/**
 	 * @ticket 36748
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_dont_downsize_text_fields() {
 		global $wpdb;
@@ -466,6 +486,8 @@
 
 	/**
 	 * @ticket 36748
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_dont_downsize_blob_fields() {
 		global $wpdb;
@@ -491,6 +513,8 @@
 
 	/**
 	 * @ticket 36748
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_upsize_text_fields() {
 		global $wpdb;
@@ -522,6 +546,8 @@
 
 	/**
 	 * @ticket 36748
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_upsize_blob_fields() {
 		global $wpdb;
@@ -553,6 +579,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_query_with_backticks_does_not_throw_an_undefined_index_warning() {
 		global $wpdb;
@@ -578,6 +606,8 @@
 
 	/**
 	 * @ticket 36948
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_spatial_indices() {
 		global $wpdb;
@@ -639,6 +669,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_query_with_backticks_does_not_cause_a_query_to_alter_all_columns_and_indices_to_run_even_if_none_have_changed() {
 		global $wpdb;
@@ -668,6 +700,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_index_with_a_reserved_keyword_can_be_created() {
 		global $wpdb;
@@ -704,6 +738,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_wp_get_db_schema_does_no_alter_queries_on_existing_install() {
 		$updates = dbDelta( wp_get_db_schema() );
@@ -713,6 +749,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_key_and_index_and_fulltext_key_and_fulltext_index_and_unique_key_and_unique_index_indicies() {
 		global $wpdb;
@@ -751,6 +789,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_index_and_key_are_synonyms_and_do_not_recreate_indices() {
 		global $wpdb;
@@ -775,6 +815,8 @@
 
 	/**
 	 * @ticket 20263
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_indices_with_prefix_limits_are_created_and_do_not_recreate_indices() {
 		global $wpdb;
@@ -809,6 +851,8 @@
 
 	/**
 	 * @ticket 34959
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_index_col_names_with_order_do_not_recreate_indices() {
 		global $wpdb;
@@ -833,6 +877,8 @@
 
 	/**
 	 * @ticket 34873
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_primary_key_with_single_space_does_not_recreate_index() {
 		global $wpdb;
@@ -857,6 +903,8 @@
 
 	/**
 	 * @ticket 34869
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_index_definitions_with_spaces_do_not_recreate_indices() {
 		global $wpdb;
@@ -881,6 +929,8 @@
 
 	/**
 	 * @ticket 34871
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_index_types_are_not_case_sensitive_and_do_not_recreate_indices() {
 		global $wpdb;
@@ -905,6 +955,8 @@
 
 	/**
 	 * @ticket 34874
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_key_names_are_not_case_sensitive_and_do_not_recreate_indices() {
 		global $wpdb;
@@ -930,6 +982,8 @@
 
 	/**
 	 * @ticket 34870
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_unchanged_key_lengths_do_not_recreate_index() {
 		global $wpdb;
@@ -955,6 +1009,8 @@
 
 	/**
 	 * @ticket 34870
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_changed_key_lengths_do_not_recreate_index() {
 		global $wpdb;
@@ -1039,6 +1095,8 @@
 
 	/**
 	 * @ticket 31679
+	 *
+	 * @covers ::dbDelta
 	 */
 	function test_column_type_change_with_hyphens_in_name() {
 		global $wpdb;
Index: tests/phpunit/tests/dependencies.php
===================================================================
--- tests/phpunit/tests/dependencies.php	(revision 48816)
+++ tests/phpunit/tests/dependencies.php	(working copy)
@@ -4,6 +4,11 @@
  * @group scripts
  */
 class Tests_Dependencies extends WP_UnitTestCase {
+
+	/**
+	 *
+	 * @covers WP_Dependencies::add
+	 */
 	function test_add() {
 		$dep = new WP_Dependencies;
 
@@ -16,7 +21,10 @@
 		// Cannot reuse names.
 		$this->assertFalse( $dep->add( 'one', '' ) );
 	}
-
+	/**
+	 *
+	 * @covers WP_Dependencies::remove
+	 */
 	function test_remove() {
 		$dep = new WP_Dependencies;
 
@@ -29,7 +37,10 @@
 		$this->assertInstanceOf( '_WP_Dependency', $dep->query( 'two' ) );
 
 	}
-
+	/**
+	 *
+	 * @covers WP_Dependencies::enqueue
+	 */
 	function test_enqueue() {
 		$dep = new WP_Dependencies;
 
@@ -45,7 +56,10 @@
 		$this->assertTrue( $dep->query( 'one', 'queue' ) );
 		$this->assertTrue( $dep->query( 'two', 'queue' ) );
 	}
-
+	/**
+	 *
+	 * @covers WP_Dependencies::dequeue
+	 */
 	function test_dequeue() {
 		$dep = new WP_Dependencies;
 
@@ -65,7 +79,10 @@
 		$this->assertFalse( $dep->query( 'one', 'queue' ) );
 		$this->assertFalse( $dep->query( 'two', 'queue' ) );
 	}
-
+	/**
+	 *
+	 * @covers WP_Dependencies::enqueue
+	 */
 	function test_enqueue_args() {
 		$dep = new WP_Dependencies;
 
@@ -83,7 +100,10 @@
 		$this->assertTrue( $dep->query( 'two', 'queue' ) );
 		$this->assertEquals( 'arg', $dep->args['two'] );
 	}
-
+	/**
+	 *
+	 * @covers WP_Dependencies::dequeue
+	 */
 	function test_dequeue_args() {
 		$dep = new WP_Dependencies;
 
@@ -110,6 +130,8 @@
 
 	/**
 	 * @ticket 21741
+	 *
+	 * @covers WP_Dependencies::query
 	 */
 	function test_query_and_registered_enqueued() {
 		$dep = new WP_Dependencies;
Index: tests/phpunit/tests/dependencies/scripts.php
===================================================================
--- tests/phpunit/tests/dependencies/scripts.php	(revision 48816)
+++ tests/phpunit/tests/dependencies/scripts.php	(working copy)
@@ -1045,7 +1045,7 @@
 	 * Testing `wp_enqueue_code_editor` with file path.
 	 *
 	 * @ticket 41871
-	 * @covers ::wp_enqueue_code_editor()
+	 * @covers ::wp_enqueue_code_editor
 	 */
 	public function test_wp_enqueue_code_editor_when_php_file_will_be_passed() {
 		$real_file              = WP_PLUGIN_DIR . '/hello.php';
@@ -1132,7 +1132,7 @@
 	 * Testing `wp_enqueue_code_editor` with `compact`.
 	 *
 	 * @ticket 41871
-	 * @covers ::wp_enqueue_code_editor()
+	 * @covers ::wp_enqueue_code_editor
 	 */
 	public function test_wp_enqueue_code_editor_when_generated_array_by_compact_will_be_passed() {
 		$file                   = '';
@@ -1215,7 +1215,7 @@
 	 * Testing `wp_enqueue_code_editor` with `array_merge`.
 	 *
 	 * @ticket 41871
-	 * @covers ::wp_enqueue_code_editor()
+	 * @covers ::wp_enqueue_code_editor
 	 */
 	public function test_wp_enqueue_code_editor_when_generated_array_by_array_merge_will_be_passed() {
 		$wp_enqueue_code_editor = wp_enqueue_code_editor(
@@ -1312,7 +1312,7 @@
 	 * Testing `wp_enqueue_code_editor` with `array`.
 	 *
 	 * @ticket 41871
-	 * @covers ::wp_enqueue_code_editor()
+	 * @covers ::wp_enqueue_code_editor
 	 */
 	public function test_wp_enqueue_code_editor_when_simple_array_will_be_passed() {
 		$wp_enqueue_code_editor = wp_enqueue_code_editor(
Index: tests/phpunit/tests/file.php
===================================================================
--- tests/phpunit/tests/file.php	(revision 48816)
+++ tests/phpunit/tests/file.php	(working copy)
@@ -16,6 +16,8 @@
 	/**
 	 * @group plugins
 	 * @group themes
+	 *
+	 * @cover ::get_file_data
 	 */
 	function test_get_file_data() {
 		$theme_headers = array(
@@ -46,6 +48,8 @@
 	/**
 	 * @group plugins
 	 * @group themes
+	 *
+	 * @cover ::get_file_data
 	 */
 	function test_get_file_data_cr_line_endings() {
 		$headers  = array(
@@ -88,6 +92,10 @@
 		return $result;
 	}
 
+	/**
+	 *
+	 * @cover ::wp_unique_filename
+	 */
 	function test_unique_filename_is_valid() {
 		// Make sure it produces a valid, writable, unique filename.
 		$filename = wp_unique_filename( $this->dir, __FUNCTION__ . '.txt' );
@@ -97,6 +105,10 @@
 		unlink( $this->dir . DIRECTORY_SEPARATOR . $filename );
 	}
 
+	/**
+	 *
+	 * @cover ::wp_unique_filename
+	 */
 	function test_unique_filename_is_unique() {
 		// Make sure it produces two unique filenames.
 		$name = __FUNCTION__;
@@ -113,6 +125,10 @@
 		unlink( $this->dir . DIRECTORY_SEPARATOR . $filename2 );
 	}
 
+	/**
+	 *
+	 * @cover ::wp_unique_filename
+	 */
 	function test_unique_filename_is_sanitized() {
 		$name     = __FUNCTION__;
 		$filename = wp_unique_filename( $this->dir, $name . $this->badchars . '.txt' );
@@ -125,6 +141,10 @@
 		unlink( $this->dir . DIRECTORY_SEPARATOR . $filename );
 	}
 
+	/**
+	 *
+	 * @cover ::wp_unique_filename
+	 */
 	function test_unique_filename_with_slashes() {
 		$name = __FUNCTION__;
 		// "foo/foo.txt"
@@ -138,6 +158,10 @@
 		unlink( $this->dir . DIRECTORY_SEPARATOR . $filename );
 	}
 
+	/**
+	 *
+	 * @cover ::wp_unique_filename
+	 */
 	function test_unique_filename_multiple_ext() {
 		$name     = __FUNCTION__;
 		$filename = wp_unique_filename( $this->dir, $name . '.php.txt' );
@@ -150,6 +174,10 @@
 		unlink( $this->dir . DIRECTORY_SEPARATOR . $filename );
 	}
 
+	/**
+	 *
+	 * @cover ::wp_unique_filename
+	 */
 	function test_unique_filename_no_ext() {
 		$name     = __FUNCTION__;
 		$filename = wp_unique_filename( $this->dir, $name );
@@ -163,6 +191,8 @@
 
 	/**
 	 * @dataProvider data_wp_tempnam_filenames
+	 *
+	 * @cover ::wp_tempnam
 	 */
 	function test_wp_tempnam( $case ) {
 		$file = wp_tempnam( $case );
@@ -183,6 +213,8 @@
 
 	/**
 	 * @ticket 47186
+	 *
+	 * @cover ::verify_file_signature
 	 */
 	function test_file_signature_functions_as_expected() {
 		$file = wp_tempnam();
@@ -216,6 +248,8 @@
 
 	/**
 	 * @ticket 47186
+	 *
+	 * @cover ::verify_file_signature
 	 */
 	function test_file_signature_expected_failure() {
 		$file = wp_tempnam();
Index: tests/phpunit/tests/filters.php
===================================================================
--- tests/phpunit/tests/filters.php	(revision 48816)
+++ tests/phpunit/tests/filters.php	(working copy)
@@ -7,6 +7,9 @@
  */
 class Tests_Filters extends WP_UnitTestCase {
 
+	/**
+	 * @covers ::add_filter
+	 */
 	function test_simple_filter() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -25,6 +28,9 @@
 		$this->assertEquals( array( $val ), $args );
 	}
 
+	/**
+	 * @covers ::remove_filter
+	 */
 	function test_remove_filter() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -45,6 +51,9 @@
 
 	}
 
+	/**
+	 * @covers ::has_filter
+	 */
 	function test_has_filter() {
 			$tag  = __FUNCTION__;
 			$func = __FUNCTION__ . '_func';
@@ -59,7 +68,11 @@
 			$this->assertFalse( has_filter( $tag ) );
 	}
 
-	// One tag with multiple filters.
+	/**
+	 * One tag with multiple filters.
+	 *
+	 * @covers ::add_filter
+	 */
 	function test_multiple_filters() {
 		$a1  = new MockAction();
 		$a2  = new MockAction();
@@ -77,6 +90,11 @@
 		$this->assertEquals( 1, $a2->get_call_count() );
 	}
 
+	/**
+	 * One tag with multiple filters.
+	 *
+	 * @covers ::add_filter
+	 */
 	function test_filter_args_1() {
 		$a    = new MockAction();
 		$tag  = __FUNCTION__;
@@ -92,6 +110,11 @@
 		$this->assertEquals( array( $val, $arg1 ), array_pop( $argsvar ) );
 	}
 
+	/**
+	 * One tag with multiple filters.
+	 *
+	 * @covers ::add_filter
+	 */
 	function test_filter_args_2() {
 		$a1   = new MockAction();
 		$a2   = new MockAction();
@@ -117,6 +140,11 @@
 		$this->assertEquals( array( $val ), array_pop( $argsvar2 ) );
 	}
 
+	/**
+	 * One tag with multiple filters.
+	 *
+	 * @covers ::add_filter
+	 */
 	function test_filter_priority() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -148,6 +176,11 @@
 		$this->assertEquals( $expected, $a->get_events() );
 	}
 
+	/**
+	 * One tag with multiple filters.
+	 *
+	 * @covers ::add_filter
+	 */
 	function test_all_filter() {
 		$a    = new MockAction();
 		$tag1 = __FUNCTION__ . '_1';
@@ -172,6 +205,11 @@
 
 	}
 
+	/**
+	 * One tag with multiple filters.
+	 *
+	 * @covers ::add_filter
+	 */
 	function test_remove_all_filter() {
 		$a   = new MockAction();
 		$tag = __FUNCTION__;
@@ -198,6 +236,8 @@
 
 	/**
 	 * @ticket 20920
+	 *
+	 * @covers ::add_filter
 	 */
 	function test_remove_all_filters_should_respect_the_priority_argument() {
 		$a   = new MockAction();
@@ -217,6 +257,8 @@
 
 	/**
 	 * @ticket 9886
+	 *
+	 * @covers ::add_filter
 	 */
 	function test_filter_ref_array() {
 		$obj = new stdClass();
@@ -236,6 +278,8 @@
 
 	/**
 	 * @ticket 12723
+	 *
+	 * @covers ::add_filter
 	 */
 	function test_filter_ref_array_result() {
 		$obj = new stdClass();
@@ -271,6 +315,8 @@
 
 	/**
 	 * @ticket 29070
+	 *
+	 * @covers ::has_filter
 	 */
 	function test_has_filter_after_remove_all_filters() {
 		$a   = new MockAction();
@@ -298,6 +344,8 @@
 	/**
 	 * @ticket 10441
 	 * @expectedDeprecated tests_apply_filters_deprecated
+	 *
+	 * @covers ::apply_filters_deprecated
 	 */
 	public function test_apply_filters_deprecated() {
 		$p = 'Foo';
@@ -317,6 +365,8 @@
 	/**
 	 * @ticket 10441
 	 * @expectedDeprecated tests_apply_filters_deprecated
+	 *
+	 * @covers ::apply_filters_deprecated
 	 */
 	public function test_apply_filters_deprecated_with_multiple_params() {
 		$p1 = 'Foo1';
@@ -341,6 +391,8 @@
 
 	/**
 	 * @ticket 10441
+	 *
+	 * @covers ::apply_filters_deprecated
 	 */
 	public function test_apply_filters_deprecated_without_filter() {
 		$val = 'Foobar';
@@ -351,6 +403,8 @@
 	private $current_priority;
 	/**
 	 * @ticket 39007
+	 *
+	 * @covers ::add_action
 	 */
 	public function test_current_priority() {
 		add_action( 'test_current_priority', array( $this, '_current_priority_action' ), 99 );
@@ -360,6 +414,9 @@
 		$this->assertSame( 99, $this->current_priority );
 	}
 
+	/**
+	 * One tag with multiple filters.
+	 */
 	public function _current_priority_action() {
 		global $wp_filter;
 		$this->current_priority = $wp_filter[ current_filter() ]->current_priority();
@@ -367,6 +424,8 @@
 
 	/**
 	 * @ticket 39007
+	 *
+	 * @covers ::add_action
 	 */
 	public function test_other_priority() {
 		add_action( 'test_current_priority', array( $this, '_other_priority_action' ), 99 );
Index: tests/phpunit/tests/functions.php
===================================================================
--- tests/phpunit/tests/functions.php	(revision 48816)
+++ tests/phpunit/tests/functions.php	(working copy)
@@ -4,6 +4,11 @@
  * @group functions.php
  */
 class Tests_Functions extends WP_UnitTestCase {
+
+	/**
+	 *
+	 * @covers ::wp_parse_args
+	 */
 	function test_wp_parse_args_object() {
 		$x        = new MockClass;
 		$x->_baba = 5;
@@ -21,6 +26,11 @@
 		$this->assertEquals( array(), wp_parse_args( $y ) );
 	}
 
+
+	/**
+	 *
+	 * @covers ::wp_parse_args
+	 */
 	function test_wp_parse_args_array() {
 		// Arrays.
 		$a = array();
@@ -40,6 +50,11 @@
 		);
 	}
 
+
+	/**
+	 *
+	 * @covers ::wp_parse_args
+	 */
 	function test_wp_parse_args_defaults() {
 		$x        = new MockClass;
 		$x->_baba = 5;
@@ -66,6 +81,11 @@
 		);
 	}
 
+
+	/**
+	 *
+	 * @covers ::wp_parse_args
+	 */
 	function test_wp_parse_args_other() {
 		$b = true;
 		wp_parse_str( $b, $s );
@@ -77,6 +97,8 @@
 
 	/**
 	 * @ticket 30753
+	 *
+	 * @covers ::wp_parse_args
 	 */
 	function test_wp_parse_args_boolean_strings() {
 		$args = wp_parse_args( 'foo=false&bar=true' );
@@ -86,6 +108,8 @@
 
 	/**
 	 * @ticket 35972
+	 *
+	 * @covers ::bool_from_yn
 	 */
 	function test_bool_from_yn() {
 		$this->assertTrue( bool_from_yn( 'Y' ) );
@@ -93,6 +117,10 @@
 		$this->assertFalse( bool_from_yn( 'n' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::path_is_absolute
+	 */
 	function test_path_is_absolute() {
 		$absolute_paths = array(
 			'/',
@@ -111,6 +139,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::path_is_absolute
+	 */
 	function test_path_is_not_absolute() {
 		$relative_paths = array(
 			'',
@@ -134,6 +166,7 @@
 	 * @ticket 35996
 	 *
 	 * @dataProvider data_wp_normalize_path
+	 * @covers ::wp_normalize_path
 	 */
 	function test_wp_normalize_path( $path, $expected ) {
 		$this->assertEquals( $expected, wp_normalize_path( $path ) );
@@ -163,6 +196,11 @@
 		);
 	}
 
+
+	/**
+	 *
+	 * @covers ::wp_unique_filename
+	 */
 	function test_wp_unique_filename() {
 
 		$testdir = DIR_TESTDATA . '/images/';
@@ -198,6 +236,8 @@
 
 	/**
 	 * @ticket 42437
+	 *
+	 * @covers ::wp_unique_filename
 	 */
 	function test_unique_filename_with_dimension_like_filename() {
 		$testdir = DIR_TESTDATA . '/images/';
@@ -223,6 +263,8 @@
 
 	/**
 	 * @dataProvider data_is_not_serialized
+	 *
+	 * @covers ::serialize
 	 */
 	function test_maybe_serialize( $value ) {
 		if ( is_array( $value ) || is_object( $value ) ) {
@@ -236,6 +278,8 @@
 
 	/**
 	 * @dataProvider data_is_serialized
+	 *
+	 * @covers ::serialize
 	 */
 	function test_maybe_serialize_with_double_serialization( $value ) {
 		$expected = serialize( $value );
@@ -246,6 +290,8 @@
 	/**
 	 * @dataProvider data_is_serialized
 	 * @dataProvider data_is_not_serialized
+	 *
+	 * @covers ::maybe_unserialize
 	 */
 	function test_maybe_unserialize( $value, $is_serialized ) {
 		if ( $is_serialized ) {
@@ -264,6 +310,8 @@
 	/**
 	 * @dataProvider data_is_serialized
 	 * @dataProvider data_is_not_serialized
+	 *
+	 * @covers ::is_serialized
 	 */
 	function test_is_serialized( $value, $expected ) {
 		$this->assertSame( $expected, is_serialized( $value ) );
@@ -324,6 +372,8 @@
 	/**
 	 * @ticket 46570
 	 * @dataProvider data_is_serialized_should_return_true_for_large_floats
+	 *
+	 * @covers ::is_serialized
 	 */
 	function test_is_serialized_should_return_true_for_large_floats( $value ) {
 		$this->assertTrue( is_serialized( $value ) );
@@ -338,6 +388,8 @@
 
 	/**
 	 * @ticket 17375
+	 *
+	 * @covers ::is_serialized
 	 */
 	function test_no_new_serializable_types() {
 		$this->assertFalse( is_serialized( 'C:16:"Serialized_Class":6:{a:0:{}}' ) );
@@ -345,6 +397,8 @@
 
 	/**
 	 * @group add_query_arg
+	 *
+	 * @covers ::add_query_arg
 	 */
 	function test_add_query_arg() {
 		$old_req_uri = $_SERVER['REQUEST_URI'];
@@ -533,6 +587,8 @@
 
 	/**
 	 * @ticket 31306
+	 *
+	 * @covers ::add_query_arg
 	 */
 	function test_add_query_arg_numeric_keys() {
 		$url = add_query_arg( array( 'foo' => 'bar' ), '1=1' );
@@ -553,6 +609,8 @@
 
 	/**
 	 * @ticket 21594
+	 *
+	 * @covers ::get_allowed_mime_types
 	 */
 	function test_get_allowed_mime_types() {
 		$mimes = get_allowed_mime_types();
@@ -573,6 +631,8 @@
 
 	/**
 	 * @ticket 21594
+	 *
+	 * @covers ::wp_get_mime_types
 	 */
 	function test_wp_get_mime_types() {
 		$mimes = wp_get_mime_types();
@@ -605,6 +665,9 @@
 
 	/**
 	 * @ticket 23688
+	 *
+	 * @covers ::get_option
+	 * @covers ::_canonical_charset
 	 */
 	function test_canonical_charset() {
 		$orig_blog_charset = get_option( 'blog_charset' );
@@ -643,6 +706,8 @@
 	/**
 	 * @ticket 43977
 	 * @dataProvider data_wp_parse_list
+	 *
+	 * @covers ::wp_parse_list
 	 */
 	function test_wp_parse_list( $expected, $actual ) {
 		$this->assertSame( $expected, array_values( wp_parse_list( $actual ) ) );
@@ -666,6 +731,8 @@
 
 	/**
 	 * @dataProvider data_wp_parse_id_list
+	 *
+	 * @covers ::wp_parse_id_list
 	 */
 	function test_wp_parse_id_list( $expected, $actual ) {
 		$this->assertSame( $expected, array_values( wp_parse_id_list( $actual ) ) );
@@ -701,6 +768,8 @@
 
 	/**
 	 * @dataProvider data_device_can_upload
+	 *
+	 * @covers ::_device_can_upload
 	 */
 	function test_device_can_upload( $user_agent, $expected ) {
 		$_SERVER['HTTP_USER_AGENT'] = $user_agent;
@@ -761,6 +830,8 @@
 
 	/**
 	 * @ticket 9064
+	 *
+	 * @covers ::wp_extract_urls
 	 */
 	function test_wp_extract_urls() {
 		$original_urls = array(
@@ -928,6 +999,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode() {
 		$this->assertEquals( wp_json_encode( 'a' ), '"a"' );
@@ -935,6 +1008,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode_utf8() {
 		$this->assertEquals( wp_json_encode( '这' ), '"\u8fd9"' );
@@ -942,6 +1017,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode_non_utf8() {
 		if ( ! function_exists( 'mb_detect_order' ) ) {
@@ -967,6 +1044,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode_non_utf8_in_array() {
 		if ( ! function_exists( 'mb_detect_order' ) ) {
@@ -992,6 +1071,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode_array() {
 		$this->assertEquals( wp_json_encode( array( 'a' ) ), '["a"]' );
@@ -999,6 +1080,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode_object() {
 		$object    = new stdClass;
@@ -1008,6 +1091,8 @@
 
 	/**
 	 * @ticket 28786
+	 *
+	 * @covers ::wp_json_encode
 	 */
 	function test_wp_json_encode_depth() {
 		$data = array( array( array( 1, 2, 3 ) ) );
@@ -1022,6 +1107,8 @@
 	/**
 	 * @ticket 36054
 	 * @dataProvider datetime_provider
+	 *
+	 * @covers ::mysql_to_rfc3339
 	 */
 	function test_mysql_to_rfc3339( $expected, $actual ) {
 		$date_return = mysql_to_rfc3339( $actual );
@@ -1044,6 +1131,8 @@
 
 	/**
 	 * @ticket 35987
+	 *
+	 * @covers ::wp_get_ext_types
 	 */
 	public function test_wp_get_ext_types() {
 		$extensions = wp_get_ext_types();
@@ -1063,6 +1152,8 @@
 
 	/**
 	 * @ticket 35987
+	 *
+	 * @covers ::wp_get_ext_types
 	 */
 	public function test_wp_ext2type() {
 		$extensions = wp_get_ext_types();
@@ -1084,6 +1175,8 @@
 	 * test suite is -1, we can not test the memory limit negotiations.
 	 *
 	 * @ticket 32075
+	 *
+	 * @covers ::wp_raise_memory_limit
 	 */
 	function test_wp_raise_memory_limit() {
 		if ( -1 !== WP_MAX_MEMORY_LIMIT ) {
@@ -1102,8 +1195,9 @@
 	/**
 	 * Tests wp_generate_uuid4().
 	 *
+	 * @ticket 38164
+	 *
 	 * @covers ::wp_generate_uuid4
-	 * @ticket 38164
 	 */
 	function test_wp_generate_uuid4() {
 		$uuids = array();
@@ -1120,8 +1214,9 @@
 	/**
 	 * Tests wp_is_uuid().
 	 *
+	 * @ticket 39778
+	 *
 	 * @covers ::wp_is_uuid
-	 * @ticket 39778
 	 */
 	function test_wp_is_valid_uuid() {
 		$uuids_v4 = array(
@@ -1170,8 +1265,9 @@
 	/**
 	 * Tests wp_unique_id().
 	 *
+	 * @ticket 44883
+	 *
 	 * @covers ::wp_unique_id
-	 * @ticket 44883
 	 */
 	function test_wp_unique_id() {
 
@@ -1198,6 +1294,8 @@
 	/**
 	 * @ticket 40017
 	 * @dataProvider _wp_get_image_mime
+	 *
+	 * @covers ::wp_get_image_mime
 	 */
 	public function test_wp_get_image_mime( $file, $expected ) {
 		if ( ! is_callable( 'exif_imagetype' ) && ! function_exists( 'getimagesize' ) ) {
@@ -1210,6 +1308,8 @@
 	/**
 	 * @ticket 39550
 	 * @dataProvider _wp_check_filetype_and_ext_data
+	 *
+	 * @covers ::wp_check_filetype_and_ext
 	 */
 	function test_wp_check_filetype_and_ext( $file, $filename, $expected ) {
 		if ( ! extension_loaded( 'fileinfo' ) ) {
@@ -1222,6 +1322,8 @@
 	/**
 	 * @ticket 39550
 	 * @group ms-excluded
+	 *
+	 * @covers ::wp_check_filetype_and_ext
 	 */
 	function test_wp_check_filetype_and_ext_with_filtered_svg() {
 		if ( ! extension_loaded( 'fileinfo' ) ) {
@@ -1247,6 +1349,8 @@
 	/**
 	 * @ticket 39550
 	 * @group ms-excluded
+	 *
+	 * @covers ::wp_check_filetype_and_ext
 	 */
 	function test_wp_check_filetype_and_ext_with_filtered_woff() {
 		if ( ! extension_loaded( 'fileinfo' ) ) {
@@ -1488,6 +1592,8 @@
 	 * @param string $file          File path.
 	 * @param array  $allowed_files List of allowed files.
 	 * @param int    $expected      Expected result.
+	 *
+	 * @covers ::validate_file
 	 */
 	public function test_validate_file( $file, $allowed_files, $expected ) {
 		$this->assertSame( $expected, validate_file( $file, $allowed_files ) );
@@ -1630,6 +1736,8 @@
 	 *
 	 * @param string $path     The resource path or URL.
 	 * @param bool   $expected Expected result.
+	 *
+	 * @covers ::wp_is_stream
 	 */
 	public function test_wp_is_stream( $path, $expected ) {
 		if ( ! extension_loaded( 'openssl' ) && false !== strpos( $path, 'https://' ) ) {
@@ -1674,6 +1782,8 @@
 	 *
 	 * @param string $input    Duration.
 	 * @param string $expected Expected human readable duration.
+	 *
+	 * @covers ::human_readable_duration
 	 */
 	public function test_human_readable_duration( $input, $expected ) {
 		$this->assertSame( $expected, human_readable_duration( $input ) );
Index: tests/phpunit/tests/kses.php
===================================================================
--- tests/phpunit/tests/kses.php	(revision 48816)
+++ tests/phpunit/tests/kses.php	(working copy)
@@ -9,6 +9,8 @@
 
 	/**
 	 * @ticket 20210
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_wp_filter_post_kses_address() {
 		global $allowedposttags;
@@ -36,6 +38,8 @@
 
 	/**
 	 * @ticket 20210
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_wp_filter_post_kses_a() {
 		global $allowedposttags;
@@ -77,6 +81,8 @@
 	 * @param string $source   Source HTML.
 	 * @param string $context  Context to use for parsing source.
 	 * @param string $expected Expected output following KSES parsing.
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_wp_kses_video( $source, $context, $expected ) {
 		$actual = wp_kses( $source, $context );
@@ -123,6 +129,8 @@
 
 	/**
 	 * @ticket 20210
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_wp_filter_post_kses_abbr() {
 		global $allowedposttags;
@@ -141,6 +149,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::wp_kses
+	 */
 	function test_feed_links() {
 		global $allowedposttags;
 
@@ -175,6 +187,10 @@
 		$this->assertEquals( $expected, wp_kses( $content, $allowedposttags ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_kses_bad_protocol
+	 */
 	function test_wp_kses_bad_protocol() {
 		$bad = array(
 			'dummy:alert(1)',
@@ -277,6 +293,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::wp_kses_data
+	 */
 	public function test_hackers_attacks() {
 		$xss = simplexml_load_file( DIR_TESTDATA . '/formatting/xssAttacks.xml' );
 		foreach ( $xss->attack as $attack ) {
@@ -421,6 +441,8 @@
 
 	/**
 	 * @ticket 20210
+	 *
+	 * @covers ::wp_kses_allowed_html
 	 */
 	public function test_wp_kses_allowed_html() {
 		global $allowedposttags, $allowedtags, $allowedentitynames;
@@ -470,6 +492,10 @@
 		$this->assertEquals( $allowedtags, wp_kses_allowed_html( 'data' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_kses_post
+	 */
 	function test_hyphenated_tag() {
 		$string                 = '<hyphenated-tag attribute="value" otherattribute="value2">Alot of hyphens.</hyphenated-tag>';
 		$custom_tags            = array(
@@ -486,6 +512,8 @@
 
 	/**
 	 * @ticket 26290
+	 *
+	 * @covers ::wp_kses_normalize_entities
 	 */
 	public function test_wp_kses_normalize_entities() {
 		$this->assertEquals( '&spades;', wp_kses_normalize_entities( '&spades;' ) );
@@ -504,6 +532,8 @@
 	 *
 	 * @ticket 28506
 	 * @dataProvider data_ctrl_removal
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_ctrl_removal( $input, $output ) {
 		global $allowedposttags;
@@ -541,6 +571,8 @@
 	 *
 	 * @ticket 28699
 	 * @dataProvider data_slash_zero_removal
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_slash_zero_removal( $input, $output ) {
 		global $allowedposttags;
@@ -593,6 +625,8 @@
 	 * Test new function wp_kses_hair_parse().
 	 *
 	 * @dataProvider data_hair_parse
+	 *
+	 * @covers ::wp_kses_hair_parse
 	 */
 	function test_hair_parse( $input, $output ) {
 		return $this->assertEquals( $output, wp_kses_hair_parse( $input ) );
@@ -659,6 +693,8 @@
 	 * Test new function wp_kses_attr_parse().
 	 *
 	 * @dataProvider data_attr_parse
+	 *
+	 * @covers ::wp_kses_attr_parse
 	 */
 	function test_attr_parse( $input, $output ) {
 		return $this->assertEquals( $output, wp_kses_attr_parse( $input ) );
@@ -717,6 +753,8 @@
 	 * Test new function wp_kses_one_attr().
 	 *
 	 * @dataProvider data_one_attr
+	 *
+	 * @covers ::wp_kses_one_attr
 	 */
 	function test_one_attr( $element, $input, $output ) {
 		return $this->assertEquals( $output, wp_kses_one_attr( $input, $element ) );
@@ -794,6 +832,8 @@
 
 	/**
 	 * @ticket 34063
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_bdo() {
 		global $allowedposttags;
@@ -805,6 +845,8 @@
 
 	/**
 	 * @ticket 35079
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_ol_reversed() {
 		global $allowedposttags;
@@ -816,6 +858,8 @@
 
 	/**
 	 * @ticket 40680
+	 *
+	 * @covers ::wp_kses_attr
 	 */
 	function test_wp_kses_attr_no_attributes_allowed_with_empty_array() {
 		$element   = 'foo';
@@ -826,6 +870,8 @@
 
 	/**
 	 * @ticket 40680
+	 *
+	 * @covers ::wp_kses_attr
 	 */
 	function test_wp_kses_attr_no_attributes_allowed_with_true() {
 		$element   = 'foo';
@@ -836,6 +882,8 @@
 
 	/**
 	 * @ticket 40680
+	 *
+	 * @covers ::wp_kses_attr
 	 */
 	function test_wp_kses_attr_single_attribute_is_allowed() {
 		$element   = 'foo';
@@ -846,6 +894,8 @@
 
 	/**
 	 * @ticket 43312
+	 *
+	 * @covers ::wp_kses_attr
 	 */
 	function test_wp_kses_attr_no_attributes_allowed_with_false() {
 		$element   = 'foo';
@@ -864,6 +914,8 @@
 	 *
 	 * @param string $css      A string of CSS rules.
 	 * @param string $expected Expected string of CSS rules.
+	 *
+	 * @covers ::safecss_filter_attr
 	 */
 	public function test_safecss_filter_attr( $css, $expected ) {
 		$this->assertSame( $expected, safecss_filter_attr( $css ) );
@@ -1052,6 +1104,8 @@
 	 * Data attributes are globally accepted.
 	 *
 	 * @ticket 33121
+	 *
+	 * @covers ::wp_kses_post
 	 */
 	function test_wp_kses_attr_data_attribute_is_allowed() {
 		$test     = '<div data-foo="foo" data-bar="bar" datainvalid="gone" data--invaild="gone"  data-also-invaild-="gone" data-two-hyphens="remains">Pens and pencils</div>';
@@ -1064,6 +1118,8 @@
 	 * Ensure wildcard attributes block unprefixed wildcard uses.
 	 *
 	 * @ticket 33121
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_wildcard_requires_hyphen_after_prefix() {
 		$allowed_html = array(
@@ -1085,6 +1141,8 @@
 	 * Ensure wildcard allows two hyphen.
 	 *
 	 * @ticket 33121
+	 *
+	 * @covers ::wp_kses
 	 */
 	function test_wildcard_allows_two_hyphens() {
 		$allowed_html = array(
@@ -1107,6 +1165,8 @@
 	 * @dataProvider data_wildcard_attribute_prefixes
 	 *
 	 * @ticket 33121
+	 *
+	 * @covers ::wp_kses_attr_check
 	 */
 	function test_wildcard_attribute_prefixes( $wildcard_attribute, $expected ) {
 		$allowed_html = array(
@@ -1152,6 +1212,8 @@
 	 *
 	 * @param $input string The style attribute saved in the editor.
 	 * @param $expected string The sanitized style attribute.
+	 *
+	 * @covers ::safecss_filter_attr
 	 */
 	function test_kses_style_attr_with_url( $input, $expected ) {
 		$actual = safecss_filter_attr( $input );
@@ -1299,6 +1361,8 @@
 	 *
 	 * @param string $css      A string of CSS rules.
 	 * @param string $expected Expected string of CSS rules.
+	 *
+	 * @covers ::safecss_filter_attr
 	 */
 	public function test_safecss_filter_attr_filtered( $css, $expected ) {
 		add_filter( 'safecss_filter_attr_allow_css', '__return_true' );
@@ -1366,6 +1430,8 @@
 	 * Test filtering a standard img tag.
 	 *
 	 * @ticket 50731
+	 *
+	 * @covers ::wp_kses_post
 	 */
 	function test_wp_kses_img_tag_standard_attributes() {
 		$html = array(
Index: tests/phpunit/tests/l10n.php
===================================================================
--- tests/phpunit/tests/l10n.php	(revision 48816)
+++ tests/phpunit/tests/l10n.php	(working copy)
@@ -17,6 +17,8 @@
 
 	/**
 	 * @ticket 35961
+	 *
+	 * @covers ::_n_noop
 	 */
 	function test_n_noop() {
 		$text_domain   = 'text-domain';
@@ -30,6 +32,8 @@
 
 	/**
 	 * @ticket 35961
+	 *
+	 * @covers ::_nx_noop
 	 */
 	function test_nx_noop() {
 		$text_domain   = 'text-domain';
@@ -44,6 +48,8 @@
 
 	/**
 	 * @ticket 35073
+	 *
+	 * @covers ::before_last_bar
 	 */
 	function test_before_last_bar() {
 		$this->assertEquals( 'no-bar-at-all', before_last_bar( 'no-bar-at-all' ) );
@@ -53,6 +59,8 @@
 
 	/**
 	 * @ticket 35950
+	 *
+	 * @covers ::get_available_languages
 	 */
 	function test_get_available_languages() {
 		$array = get_available_languages();
@@ -67,6 +75,8 @@
 
 	/**
 	 * @ticket 35284
+	 *
+	 * @covers ::wp_get_installed_translations
 	 */
 	function test_wp_get_installed_translations_for_core() {
 		$installed_translations = wp_get_installed_translations( 'core' );
@@ -89,6 +99,8 @@
 
 	/**
 	 * @ticket 35294
+	 *
+	 * @covers ::wp_dropdown_languages
 	 */
 	function test_wp_dropdown_languages() {
 		$args   = array(
@@ -111,6 +123,8 @@
 
 	/**
 	 * @ticket 38632
+	 *
+	 * @covers ::wp_dropdown_languages
 	 */
 	function test_wp_dropdown_languages_site_default() {
 		$args   = array(
@@ -135,6 +149,8 @@
 
 	/**
 	 * @ticket 44494
+	 *
+	 * @covers ::wp_dropdown_languages
 	 */
 	function test_wp_dropdown_languages_exclude_en_us() {
 		$args   = array(
@@ -153,6 +169,8 @@
 
 	/**
 	 * @ticket 38632
+	 *
+	 * @covers ::wp_dropdown_languages
 	 */
 	function test_wp_dropdown_languages_en_US_selected() {
 		$args   = array(
@@ -175,6 +193,8 @@
 
 	/**
 	 * Add site default language to ja_JP in dropdown
+	 *
+	 * @covers ::wp_dropdown_languages
 	 */
 	function test_wp_dropdown_languages_site_default_ja_JP() {
 		$args   = array(
@@ -199,6 +219,8 @@
 
 	/**
 	 * Select dropdown language from de_DE to ja_JP
+	 *
+	 * @covers ::wp_dropdown_languages
 	 */
 	function test_wp_dropdown_languages_ja_JP_selected() {
 		$args   = array(
@@ -246,6 +268,8 @@
 
 	/**
 	 * @ticket 35284
+	 *
+	 * @covers ::wp_get_pomo_file_data
 	 */
 	function test_wp_get_pomo_file_data() {
 		$file  = DIR_TESTDATA . '/pomo/empty.po';
@@ -272,6 +296,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::the_excerpt
 	 */
 	function test_length_of_excerpt_should_be_counted_by_words() {
 		global $post;
@@ -296,6 +322,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::the_excerpt
 	 */
 	function test_length_of_excerpt_should_be_counted_by_chars() {
 		global $post;
@@ -320,6 +348,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::the_excerpt
 	 */
 	function test_length_of_excerpt_should_be_counted_by_chars_in_japanese() {
 		global $post;
@@ -344,6 +374,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::the_excerpt_rss
 	 */
 	function test_length_of_excerpt_rss_should_be_counted_by_words() {
 		global $post;
@@ -368,6 +400,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::the_excerpt_rss
 	 */
 	function test_length_of_excerpt_rss_should_be_counted_by_chars() {
 		global $post;
@@ -393,6 +427,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::wp_dashboard_recent_drafts
 	 */
 	function test_length_of_draft_should_be_counted_by_words() {
 		require_once ABSPATH . 'wp-admin/includes/dashboard.php';
@@ -417,6 +453,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::wp_dashboard_recent_drafts
 	 */
 	function test_length_of_draft_should_be_counted_by_chars() {
 		require_once ABSPATH . 'wp-admin/includes/dashboard.php';
@@ -441,6 +479,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::wp_dashboard_recent_drafts
 	 */
 	function test_length_of_draft_should_be_counted_by_chars_in_japanese() {
 		require_once ABSPATH . 'wp-admin/includes/dashboard.php';
@@ -465,6 +505,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::get_comment_excerpt
 	 */
 	function test_length_of_comment_excerpt_should_be_counted_by_words() {
 		switch_to_locale( 'en_US' );
@@ -483,6 +525,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::get_comment_excerpt
 	 */
 	function test_length_of_comment_excerpt_should_be_counted_by_chars() {
 		switch_to_locale( 'ja_JP' );
@@ -501,6 +545,8 @@
 
 	/**
 	 * @ticket 44541
+	 *
+	 * @covers ::get_comment_excerpt
 	 */
 	function test_length_of_comment_excerpt_should_be_counted_by_chars_in_Japanese() {
 		switch_to_locale( 'ja_JP' );
Index: tests/phpunit/tests/link.php
===================================================================
--- tests/phpunit/tests/link.php	(revision 48816)
+++ tests/phpunit/tests/link.php	(working copy)
@@ -10,6 +10,8 @@
 
 	/**
 	 * @ticket 8847
+	 *
+	 * @covers ::get_pagenum_link
 	 */
 	function test_get_pagenum_link_case_insensitivity() {
 		$old_req_uri = $_SERVER['REQUEST_URI'];
@@ -26,6 +28,10 @@
 		$_SERVER['REQUEST_URI'] = $old_req_uri;
 	}
 
+	/**
+	 *
+	 * @covers ::wp_get_shortlink
+	 */
 	function test_wp_get_shortlink() {
 		$post_id  = self::factory()->post->create();
 		$post_id2 = self::factory()->post->create();
@@ -70,6 +76,10 @@
 		$this->assertEquals( home_url( '?p=' . $post_id ), wp_get_shortlink() );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_get_shortlink
+	 */
 	function test_wp_get_shortlink_with_page() {
 		$post_id = self::factory()->post->create( array( 'post_type' => 'page' ) );
 
@@ -84,6 +94,8 @@
 
 	/**
 	 * @ticket 26871
+	 *
+	 * @covers ::wp_get_shortlink
 	 */
 	function test_wp_get_shortlink_with_home_page() {
 		$post_id = self::factory()->post->create( array( 'post_type' => 'page' ) );
@@ -99,6 +111,8 @@
 
 	/**
 	 * @ticket 30910
+	 *
+	 * @covers ::get_permalink
 	 */
 	public function test_get_permalink_should_not_reveal_post_name_for_post_with_post_status_future() {
 		update_option( 'permalink_structure', '/%year%/%monthnum%/%day%/%postname%/' );
@@ -114,11 +128,13 @@
 
 		$non_pretty_permalink = add_query_arg( 'p', $p, trailingslashit( home_url() ) );
 
-		$this->assertEquals( $non_pretty_permalink, get_permalink( $p ) );
+		$this->assertSame( $non_pretty_permalink, get_permalink( $p ) );
 	}
 
 	/**
 	 * @ticket 30910
+	 *
+	 * @covers ::get_permalink
 	 */
 	public function test_get_permalink_should_not_reveal_post_name_for_cpt_with_post_status_future() {
 		update_option( 'permalink_structure', '/%year%/%monthnum%/%day%/%postname%/' );
@@ -148,6 +164,8 @@
 
 	/**
 	 * @ticket 1914
+	 *
+	 * @covers ::get_permalink
 	 */
 	public function test_unattached_attachment_has_a_pretty_permalink() {
 		$this->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
@@ -170,6 +188,8 @@
 
 	/**
 	 * @ticket 1914
+	 *
+	 * @covers ::get_permalink
 	 */
 	public function test_attachment_attached_to_non_existent_post_type_has_a_pretty_permalink() {
 		global $wp_post_types;
Index: tests/phpunit/tests/locale.php
===================================================================
--- tests/phpunit/tests/locale.php	(revision 48816)
+++ tests/phpunit/tests/locale.php	(working copy)
@@ -15,6 +15,10 @@
 		$this->locale = new WP_Locale();
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_weekday
+	 */
 	public function test_get_weekday() {
 		$this->assertEquals( __( 'Sunday' ), $this->locale->get_weekday( 0 ) );
 		$this->assertEquals( __( 'Monday' ), $this->locale->get_weekday( 1 ) );
@@ -27,11 +31,17 @@
 
 	/**
 	 * @expectedException PHPUnit_Framework_Error_Notice
+	 *
+	 * @covers WP_Locale::get_weekday
 	 */
 	public function test_get_weekday_undefined_index() {
 		$this->locale->get_weekday( 7 );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_weekday_initial
+	 */
 	public function test_get_weekday_initial() {
 		$this->assertEquals( __( 'S' ), $this->locale->get_weekday_initial( __( 'Sunday' ) ) );
 		$this->assertEquals( __( 'M' ), $this->locale->get_weekday_initial( __( 'Monday' ) ) );
@@ -42,6 +52,10 @@
 		$this->assertEquals( __( 'S' ), $this->locale->get_weekday_initial( __( 'Saturday' ) ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_weekday_abbrev
+	 */
 	public function test_get_weekday_abbrev() {
 		$this->assertEquals( __( 'Sun' ), $this->locale->get_weekday_abbrev( __( 'Sunday' ) ) );
 		$this->assertEquals( __( 'Mon' ), $this->locale->get_weekday_abbrev( __( 'Monday' ) ) );
@@ -52,6 +66,10 @@
 		$this->assertEquals( __( 'Sat' ), $this->locale->get_weekday_abbrev( __( 'Saturday' ) ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_month
+	 */
 	public function test_get_month() {
 		$this->assertEquals( __( 'January' ), $this->locale->get_month( 1 ) );
 		$this->assertEquals( __( 'February' ), $this->locale->get_month( 2 ) );
@@ -67,6 +85,10 @@
 		$this->assertEquals( __( 'December' ), $this->locale->get_month( 12 ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_month
+	 */
 	public function test_get_month_leading_zero() {
 		$this->assertEquals( __( 'January' ), $this->locale->get_month( '01' ) );
 		$this->assertEquals( __( 'February' ), $this->locale->get_month( '02' ) );
@@ -79,6 +101,10 @@
 		$this->assertEquals( __( 'September' ), $this->locale->get_month( '09' ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_month_abbrev
+	 */
 	public function test_get_month_abbrev() {
 		$this->assertEquals( __( 'Jan' ), $this->locale->get_month_abbrev( __( 'January' ) ) );
 		$this->assertEquals( __( 'Feb' ), $this->locale->get_month_abbrev( __( 'February' ) ) );
@@ -94,6 +120,10 @@
 		$this->assertEquals( __( 'Dec' ), $this->locale->get_month_abbrev( __( 'December' ) ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::get_meridiem
+	 */
 	public function test_get_meridiem() {
 		$this->assertEquals( __( 'am' ), $this->locale->get_meridiem( 'am' ) );
 		$this->assertEquals( __( 'AM' ), $this->locale->get_meridiem( 'AM' ) );
@@ -101,6 +131,10 @@
 		$this->assertEquals( __( 'PM' ), $this->locale->get_meridiem( 'PM' ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Locale::is_rtl
+	 */
 	public function test_is_rtl() {
 		$this->assertFalse( $this->locale->is_rtl() );
 		$this->locale->text_direction = 'foo';
Index: tests/phpunit/tests/mail.php
===================================================================
--- tests/phpunit/tests/mail.php	(revision 48816)
+++ tests/phpunit/tests/mail.php	(working copy)
@@ -21,6 +21,8 @@
 	 * when it encounters a line longer than 999 characters. But PHPMailer doesn't clean up after itself / presets
 	 * all variables, which means that following tests would fail. To solve this issue we set `$this->Encoding`
 	 * back to 8bit in `MockPHPMailer::preSend`.
+	 *
+	 * @covers ::wp_mail
 	 */
 	function test_wp_mail_break_it() {
 		$content = str_repeat( 'A', 1000 );
@@ -27,6 +29,10 @@
 		$this->assertTrue( wp_mail( WP_TESTS_EMAIL, 'Looong line testing', $content ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_mail
+	 */
 	function test_wp_mail_custom_boundaries() {
 		$to       = 'user@example.com';
 		$subject  = 'Test email with custom boundaries';
@@ -87,6 +93,8 @@
 
 	/**
 	 * @ticket 17305
+	 *
+	 * @covers ::wp_mail
 	 */
 	function test_wp_mail_rfc2822_addresses() {
 		$to        = 'Name <address@tld.com>';
@@ -117,6 +125,8 @@
 
 	/**
 	 * @ticket 17305
+	 *
+	 * @covers ::wp_mail
 	 */
 	function test_wp_mail_multiple_rfc2822_to_addresses() {
 		$to      = 'Name <address@tld.com>, Another Name <another_address@different-tld.com>';
@@ -135,6 +145,10 @@
 		$this->assertEqualsIgnoreEOL( $message . "\n", $mailer->get_sent()->body );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_mail
+	 */
 	function test_wp_mail_multiple_to_addresses() {
 		$to      = 'address@tld.com, another_address@different-tld.com';
 		$subject = 'RFC2822 Testing';
@@ -150,6 +164,8 @@
 
 	/**
 	 * @ticket 18463
+	 *
+	 * @covers ::wp_mail
 	 */
 	function test_wp_mail_to_address_no_name() {
 		$to      = '<address@tld.com>';
@@ -165,6 +181,8 @@
 
 	/**
 	 * @ticket 23642
+	 *
+	 * @covers ::wp_mail
 	 */
 	function test_wp_mail_return_value() {
 		// No errors.
@@ -179,6 +197,8 @@
 
 	/**
 	 * @ticket 30266
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_with_valid_from_header() {
 		$to       = 'address@tld.com';
@@ -195,6 +215,8 @@
 
 	/**
 	 * @ticket 30266
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_with_empty_from_header() {
 		$to       = 'address@tld.com';
@@ -211,6 +233,8 @@
 
 	/**
 	 * @ticket 30266
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_with_empty_from_name_for_the_from_header() {
 		$to       = 'address@tld.com';
@@ -227,6 +251,8 @@
 
 	/**
 	 * @ticket 30266
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_with_valid_content_type_header() {
 		$to       = 'address@tld.com';
@@ -243,6 +269,8 @@
 
 	/**
 	 * @ticket 30266
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_with_empty_content_type_header() {
 		$to       = 'address@tld.com';
@@ -259,6 +287,8 @@
 
 	/**
 	 * @ticket 30266
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_with_empty_charset_for_the_content_type_header() {
 		$to       = 'address@tld.com';
@@ -275,6 +305,8 @@
 
 	/**
 	 * @ticket 43542
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_does_not_duplicate_mime_version_header() {
 		$to       = 'user@example.com';
@@ -308,6 +340,8 @@
 	 * https://tools.ietf.org/html/rfc2045#section-6.1
 	 *
 	 * @ticket 28039
+	 *
+	 * @covers ::wp_mail
 	 */
 	function test_wp_mail_content_transfer_encoding_in_quoted_printable_multipart() {
 		add_action( 'phpmailer_init', array( $this, 'wp_mail_quoted_printable' ) );
@@ -325,6 +359,8 @@
 
 	/**
 	 * @ticket 21659
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_addresses_arent_encoded() {
 		$to      = 'Lukáš To <to@example.org>';
@@ -367,6 +403,8 @@
 	 * set it correctly.
 	 *
 	 * @ticket 37736
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_wp_mail_sender_not_set() {
 		wp_mail( 'user@example.org', 'Testing the Sender field', 'The Sender field should not have been set.' );
@@ -378,6 +416,8 @@
 
 	/**
 	 * @ticket 35598
+	 *
+	 * @covers ::wp_mail
 	 */
 	public function test_phpmailer_exception_thrown() {
 		$to      = 'an_invalid_address';
@@ -410,6 +450,8 @@
 
 	/**
 	 * @ticket 50720
+	 *
+	 * @coversNothing
 	 */
 	function test_phpmailer_validator() {
 		$phpmailer = $GLOBALS['phpmailer'];
Index: tests/phpunit/tests/media.php
===================================================================
--- tests/phpunit/tests/media.php	(revision 48816)
+++ tests/phpunit/tests/media.php	(working copy)
@@ -46,6 +46,9 @@
 		);
 	}
 
+	/**
+	 * @covers ::add_shortcode
+	 */
 	function test_img_caption_shortcode_added() {
 		global $shortcode_tags;
 		$this->assertEquals( 'img_caption_shortcode', $shortcode_tags['caption'] );
@@ -52,6 +55,9 @@
 		$this->assertEquals( 'img_caption_shortcode', $shortcode_tags['wp_caption'] );
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_img_caption_shortcode_with_empty_params() {
 		$result = img_caption_shortcode( array() );
 		$this->assertNull( $result );
@@ -59,6 +65,8 @@
 
 	/**
 	 * @ticket 33981
+	 *
+	 * @covers ::img_caption_shortcode
 	 */
 	function test_img_caption_shortcode_with_empty_params_but_content() {
 		$result = img_caption_shortcode( array(), $this->caption );
@@ -67,6 +75,8 @@
 
 	/**
 	 * @ticket 33981
+	 *
+	 * @covers ::img_caption_shortcode
 	 */
 	function test_img_caption_shortcode_short_circuit_filter() {
 		add_filter( 'img_caption_shortcode', array( $this, '_return_alt_caption' ) );
@@ -84,6 +94,8 @@
 
 	/**
 	 * @ticket 33981
+	 *
+	 * @covers ::img_caption_shortcode
 	 */
 	function test_img_caption_shortcode_empty_width() {
 		$result = img_caption_shortcode(
@@ -97,6 +109,8 @@
 
 	/**
 	 * @ticket 33981
+	 *
+	 * @covers ::img_caption_shortcode
 	 */
 	function test_img_caption_shortcode_empty_caption() {
 		$result = img_caption_shortcode(
@@ -109,6 +123,8 @@
 
 	/**
 	 * @ticket 33981
+	 *
+	 * @covers ::img_caption_shortcode
 	 */
 	function test_img_caption_shortcode_empty_caption_and_content() {
 		$result = img_caption_shortcode(
@@ -120,6 +136,9 @@
 		$this->assertEquals( $this->caption, $result );
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_img_caption_shortcode_with_old_format() {
 		$result = img_caption_shortcode(
 			array(
@@ -139,6 +158,9 @@
 		}
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_img_caption_shortcode_with_old_format_id_and_align() {
 		$result = img_caption_shortcode(
 			array(
@@ -153,6 +175,9 @@
 		$this->assertEquals( 1, preg_match_all( "/{$this->caption}/", $result, $_r ) );
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_img_caption_shortcode_with_old_format_and_class() {
 		$result = img_caption_shortcode(
 			array(
@@ -165,6 +190,9 @@
 
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_new_img_caption_shortcode_with_html_caption() {
 		$result   = img_caption_shortcode(
 			array(
@@ -177,6 +205,9 @@
 		$this->assertEquals( 1, preg_match_all( "~{$our_preg}~", $result, $_r ) );
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_new_img_caption_shortcode_new_format() {
 		$result       = img_caption_shortcode(
 			array( 'width' => 20 ),
@@ -189,6 +220,9 @@
 		$this->assertEquals( 1, preg_match_all( "~wp-caption-text.*{$content_preg}~", $result, $_r ) );
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_new_img_caption_shortcode_new_format_and_linked_image() {
 		$linked_image = "<a href='#'>{$this->img_content}</a>";
 		$result       = img_caption_shortcode(
@@ -202,6 +236,9 @@
 		$this->assertEquals( 1, preg_match_all( "~wp-caption-text.*{$content_preg}~", $result, $_r ) );
 	}
 
+	/**
+	 * @covers ::img_caption_shortcode
+	 */
 	function test_new_img_caption_shortcode_new_format_and_linked_image_with_newline() {
 		$linked_image = "<a href='#'>{$this->img_content}</a>";
 		$result       = img_caption_shortcode(
@@ -217,6 +254,8 @@
 
 	/**
 	 * @ticket 34595
+	 *
+	 * @covers ::img_caption_shortcode
 	 */
 	function test_img_caption_shortcode_has_aria_describedby() {
 		$result = img_caption_shortcode(
@@ -230,6 +269,9 @@
 		$this->assertEquals( 1, preg_match_all( '/aria-describedby="caption-myId"/', $result, $_r ) );
 	}
 
+	/**
+	 * @covers ::wp_oembed_remove_provider
+	 */
 	function test_add_remove_oembed_provider() {
 		wp_oembed_add_provider( 'http://foo.bar/*', 'http://foo.bar/oembed' );
 		$this->assertTrue( wp_oembed_remove_provider( 'http://foo.bar/*' ) );
@@ -238,6 +280,8 @@
 
 	/**
 	 * @ticket 23776
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_autoembed_empty() {
 		global $wp_embed;
@@ -250,6 +294,8 @@
 
 	/**
 	 * @ticket 23776
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_autoembed_no_paragraphs_around_urls() {
 		global $wp_embed;
@@ -329,6 +375,8 @@
 
 	/**
 	 * @dataProvider data_autoembed
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_autoembed( $content, $result = null ) {
 		$wp_embed = new Test_Autoembed;
@@ -336,6 +384,9 @@
 		$this->assertEquals( $wp_embed->autoembed( $content ), $result ? $result : $content );
 	}
 
+	/**
+	 * @covers ::wp_prepare_attachment_for_js
+	 */
 	function test_wp_prepare_attachment_for_js() {
 		// Attachment without media.
 		$id   = wp_insert_attachment(
@@ -389,6 +440,8 @@
 
 	/**
 	 * @ticket 38965
+	 *
+	 * @covers ::wp_prepare_attachment_for_js
 	 */
 	function test_wp_prepare_attachment_for_js_without_image_sizes() {
 		// Create the attachement post.
@@ -420,6 +473,9 @@
 	/**
 	 * @ticket 19067
 	 * @expectedDeprecated wp_convert_bytes_to_hr
+	 *
+	 * @covers ::wp_convert_bytes_to_hr
+	 * @covers ::size_format
 	 */
 	function test_wp_convert_bytes_to_hr() {
 		$kb = 1024;
@@ -458,6 +514,8 @@
 
 	/**
 	 * @ticket 22960
+	 *
+	 * @covers ::get_attached_media
 	 */
 	function test_get_attached_images() {
 		$post_id       = self::factory()->post->create();
@@ -476,6 +534,8 @@
 
 	/**
 	 * @ticket 22960
+	 *
+	 * @covers ::wp_update_attachment_metadata
 	 */
 	function test_post_galleries_images() {
 		$ids1      = array();
@@ -527,6 +587,8 @@
 
 	/**
 	 * @ticket 39304
+	 *
+	 * @covers ::get_post_galleries
 	 */
 	function test_post_galleries_images_without_global_post() {
 		// Set up an unattached image.
@@ -552,6 +614,8 @@
 
 	/**
 	 * @ticket 39304
+	 *
+	 * @covers ::get_post_galleries
 	 */
 	function test_post_galleries_ignores_global_post() {
 		$global_post_id = $this->factory->post->create(
@@ -587,6 +651,8 @@
 
 	/**
 	 * @ticket 39304
+	 *
+	 * @covers ::get_post_galleries
 	 */
 	function test_post_galleries_respects_id_attrs() {
 		$post_id     = $this->factory->post->create(
@@ -626,6 +692,8 @@
 
 	/**
 	 * @ticket 22960
+	 *
+	 * @covers ::get_post_gallery_images
 	 */
 	function test_post_gallery_images() {
 		$ids1      = array();
@@ -675,6 +743,9 @@
 		$this->assertEquals( $srcs, $ids1_srcs );
 	}
 
+	/**
+	 * @covers ::get_media_embedded_in_content
+	 */
 	function test_get_media_embedded_in_content() {
 		$object = <<<OBJ
 <object src="this" data="that">
@@ -739,6 +810,9 @@
 		$this->assertEquals( $contents, $matches );
 	}
 
+	/**
+	 * @covers ::get_media_embedded_in_content
+	 */
 	function test_get_media_embedded_in_content_order() {
 		$audio   = <<<AUDIO
 <audio preload="none">
@@ -769,6 +843,8 @@
 
 	/**
 	 * @ticket 35367
+	 *
+	 * @covers ::wp_audio_shortcode
 	 */
 	function test_wp_audio_shortcode_with_bad_attr() {
 		$this->assertSame(
@@ -783,6 +859,8 @@
 
 	/**
 	 * @ticket 35367
+	 *
+	 * @covers ::wp_audio_shortcode
 	 */
 	function test_wp_audio_shortcode_attributes() {
 		$actual = wp_audio_shortcode(
@@ -819,6 +897,8 @@
 
 	/**
 	 * Test [video] shortcode processing
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_video_shortcode_body() {
 		$width  = 720;
@@ -865,6 +945,8 @@
 	/**
 	 * @ticket 35367
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_with_empty_params() {
 		$this->assertNull( wp_video_shortcode( array() ) );
@@ -873,6 +955,8 @@
 	/**
 	 * @ticket 35367
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_with_bad_attr() {
 		$this->assertSame(
@@ -888,6 +972,8 @@
 	/**
 	 * @ticket 35367
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_attributes() {
 		$actual = wp_video_shortcode(
@@ -930,6 +1016,8 @@
 	/**
 	 * @ticket 40866
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_youtube_remove_feature() {
 		$actual = wp_video_shortcode(
@@ -944,6 +1032,8 @@
 	/**
 	 * @ticket 40866
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_youtube_force_ssl() {
 		$actual = wp_video_shortcode(
@@ -958,6 +1048,8 @@
 	/**
 	 * @ticket 40866
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_vimeo_force_ssl_remove_query_args() {
 		$actual = wp_video_shortcode(
@@ -973,6 +1065,8 @@
 	/**
 	 * @ticket 40977
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_vimeo_adds_loop() {
 		$actual = wp_video_shortcode(
@@ -987,6 +1081,8 @@
 	/**
 	 * @ticket 40977
 	 * @depends test_video_shortcode_body
+	 *
+	 * @covers ::wp_video_shortcode
 	 */
 	function test_wp_video_shortcode_vimeo_force_adds_loop_true() {
 		$actual = wp_video_shortcode(
@@ -1001,6 +1097,8 @@
 
 	/**
 	 * @ticket 26768
+	 *
+	 * @covers ::add_image_size
 	 */
 	function test_add_image_size() {
 		$_wp_additional_image_sizes = wp_get_additional_image_sizes();
@@ -1022,6 +1120,8 @@
 
 	/**
 	 * @ticket 26768
+	 *
+	 * @covers ::remove_image_size
 	 */
 	function test_remove_image_size() {
 		add_image_size( 'test-size', 200, 600 );
@@ -1032,6 +1132,8 @@
 
 	/**
 	 * @ticket 26951
+	 *
+	 * @covers ::has_image_size
 	 */
 	function test_has_image_size() {
 		add_image_size( 'test-size', 200, 600 );
@@ -1043,6 +1145,8 @@
 
 	/**
 	 * @ticket 30346
+	 *
+	 * @covers ::attachment_url_to_postid
 	 */
 	function test_attachment_url_to_postid() {
 		$image_path    = '2014/11/' . $this->img_name;
@@ -1061,6 +1165,8 @@
 
 	/**
 	 * @ticket 33109
+	 *
+	 * @covers ::attachment_url_to_postid
 	 */
 	function test_attachment_url_to_postid_with_different_scheme() {
 		$image_path    = '2014/11/' . $this->img_name;
@@ -1079,6 +1185,8 @@
 
 	/**
 	 * @ticket 39768
+	 *
+	 * @covers ::attachment_url_to_postid
 	 */
 	function test_attachment_url_to_postid_should_be_case_sensitive() {
 		$image_path_lower_case    = '2014/11/' . $this->img_name;
@@ -1105,6 +1213,9 @@
 		$this->assertEquals( $attachment_id_upper_case, attachment_url_to_postid( $image_url ) );
 	}
 
+	/**
+	 * @covers ::attachment_url_to_postid
+	 */
 	function test_attachment_url_to_postid_filtered() {
 		$image_path    = '2014/11/' . $this->img_name;
 		$attachment_id = self::factory()->attachment->create_object(
@@ -1129,6 +1240,8 @@
 
 	/**
 	 * @ticket 31044
+	 *
+	 * @covers ::attachment_url_to_postid
 	 */
 	function test_attachment_url_to_postid_with_empty_url() {
 		$post_id = attachment_url_to_postid( '' );
@@ -1138,6 +1251,8 @@
 
 	/**
 	 * @ticket 22768
+	 *
+	 * @covers ::media_handle_upload
 	 */
 	public function test_media_handle_upload_sets_post_excerpt() {
 		$iptc_file = DIR_TESTDATA . '/images/test-image-iptc.jpg';
@@ -1177,6 +1292,8 @@
 
 	/**
 	 * @ticket 37989
+	 *
+	 * @covers ::media_handle_upload
 	 */
 	public function test_media_handle_upload_expected_titles() {
 		$test_file = DIR_TESTDATA . '/images/test-image.jpg';
@@ -1216,6 +1333,8 @@
 
 	/**
 	 * @ticket 33016
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_multiline_cdata() {
 		global $wp_embed;
@@ -1233,6 +1352,8 @@
 
 	/**
 	 * @ticket 33016
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_multiline_comment() {
 		global $wp_embed;
@@ -1250,6 +1371,8 @@
 
 	/**
 	 * @ticket 33016
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_multiline_comment_with_embeds() {
 		$content = <<<EOF
@@ -1293,6 +1416,8 @@
 
 	/**
 	 * @ticket 33016
+	 *
+	 * @covers WP_Embed::autoembed
 	 */
 	function test_oembed_explicit_media_link() {
 		global $wp_embed;
@@ -1330,6 +1455,8 @@
 	 * Tests the default output of `wp_get_attachment_image()`.
 	 *
 	 * @ticket 34635
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_defaults() {
 		$image    = image_downsize( self::$large_id, 'thumbnail' );
@@ -1347,6 +1474,8 @@
 	 * Test that `wp_get_attachment_image()` returns a proper alt value.
 	 *
 	 * @ticket 34635
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_with_alt() {
 		// Add test alt metadata.
@@ -1368,6 +1497,8 @@
 
 	/**
 	 * @ticket 33878
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_url() {
 		$this->assertFalse( wp_get_attachment_image_url( 0 ) );
@@ -1389,6 +1520,8 @@
 
 	/**
 	 * @ticket 12235
+	 *
+	 * @covers ::wp_get_attachment_caption
 	 */
 	function test_wp_get_attachment_caption() {
 		$this->assertFalse( wp_get_attachment_caption( 0 ) );
@@ -1413,6 +1546,8 @@
 
 	/**
 	 * @ticket 12235
+	 *
+	 * @covers ::wp_get_attachment_caption
 	 */
 	function test_wp_get_attachment_caption_empty() {
 		$post_id       = self::factory()->post->create();
@@ -1463,6 +1598,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset() {
 		$_wp_additional_image_sizes = wp_get_additional_image_sizes();
@@ -1510,6 +1647,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_no_date_uploads() {
 		$_wp_additional_image_sizes = wp_get_additional_image_sizes();
@@ -1566,6 +1705,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_with_edits() {
 		// For this test we're going to mock metadata changes from an edit.
@@ -1599,6 +1740,8 @@
 
 	/**
 	 * @ticket 35106
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_with_absolute_path_in_meta() {
 		$_wp_additional_image_sizes = wp_get_additional_image_sizes();
@@ -1650,6 +1793,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_false() {
 		$sizes = wp_calculate_image_srcset( array( 400, 300 ), 'file.png', array() );
@@ -1660,6 +1805,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_no_width() {
 		$file       = get_attached_file( self::$large_id );
@@ -1677,6 +1824,8 @@
 	/**
 	 * @ticket 34955
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_ratio_variance() {
 		// Mock data for this test.
@@ -1726,6 +1875,8 @@
 	/**
 	 * @ticket 35108
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_include_src() {
 		// Mock data for this test.
@@ -1775,6 +1926,8 @@
 
 	/**
 	 * @ticket 35480
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_corrupted_image_meta() {
 		$size_array = array( 300, 150 );
@@ -1849,6 +2002,8 @@
 	/**
 	 * @ticket 36549
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_with_spaces_in_filenames() {
 		// Mock data for this test.
@@ -1896,6 +2051,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_get_attachment_image_srcset() {
 		$_wp_additional_image_sizes = wp_get_additional_image_sizes();
@@ -1935,6 +2092,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_get_attachment_image_srcset_single_srcset() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -1950,6 +2109,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_get_attachment_image_srcset_invalidsize() {
 		$image_meta    = wp_get_attachment_metadata( self::$large_id );
@@ -1966,6 +2127,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_src
 	 */
 	function test_wp_get_attachment_image_sizes() {
 		// Test sizes against the default WP sizes.
@@ -1986,6 +2149,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_sizes
 	 */
 	function test_wp_calculate_image_sizes() {
 		// Test sizes against the default WP sizes.
@@ -2009,6 +2174,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_srcset_sizes() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2099,6 +2266,8 @@
 	 *
 	 * @ticket 34898
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_srcset_sizes_wrong() {
 		$img = get_image_tag( self::$large_id, '', '', '', 'medium' );
@@ -2112,6 +2281,8 @@
 
 	/**
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_srcset_sizes_with_preexisting_srcset() {
 		// Generate HTML and add a dummy srcset attribute.
@@ -2126,6 +2297,8 @@
 	/**
 	 * @ticket 33641
 	 * @ticket 34528
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_calculate_image_srcset_animated_gifs() {
 		// Mock meta for an animated gif.
@@ -2170,6 +2343,8 @@
 	/**
 	 * @ticket 35045
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_schemes() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2221,6 +2396,8 @@
 	/**
 	 * @ticket 34945
 	 * @ticket 33641
+	 *
+	 * @covers ::wp_calculate_image_srcset
 	 */
 	function test_wp_get_attachment_image_with_https_on() {
 		// Mock meta for the image.
@@ -2266,6 +2443,8 @@
 
 	/**
 	 * @ticket 36084
+	 *
+	 * @covers :get_image_send_to_editor:
 	 */
 	function test_get_image_send_to_editor_defaults() {
 		$id      = self::$large_id;
@@ -2286,6 +2465,8 @@
 
 	/**
 	 * @ticket 36084
+	 *
+	 * @covers ::get_image_send_to_editor
 	 */
 	function test_get_image_send_to_editor_defaults_with_optional_params() {
 		$id      = self::$large_id;
@@ -2310,6 +2491,8 @@
 
 	/**
 	 * @ticket 36084
+	 *
+	 * @covers ::get_image_send_to_editor
 	 */
 	function test_get_image_send_to_editor_defaults_no_caption_no_rel() {
 		$id      = self::$large_id;
@@ -2341,6 +2524,8 @@
 	 * used in the output of `wp_get_attachment_image()`.
 	 *
 	 * @ticket 36246
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_should_use_wp_get_attachment_metadata() {
 		add_filter( 'wp_get_attachment_metadata', array( $this, '_filter_36246' ), 10, 2 );
@@ -2376,6 +2561,8 @@
 
 	/**
 	 * @ticket 37813
+	 *
+	 * @covers ::wp_insert_attachment
 	 */
 	public function test_return_type_when_inserting_attachment_with_error_in_data() {
 		$data = array(
@@ -2395,6 +2582,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_get_media_creation_timestamp
 	 */
 	function test_wp_get_media_creation_timestamp_video_asf() {
 		$metadata = array(
@@ -2411,6 +2600,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_get_media_creation_timestamp
 	 */
 	function test_wp_get_media_creation_timestamp_video_matroska() {
 		$metadata = array(
@@ -2429,6 +2620,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_get_media_creation_timestamp
 	 */
 	function test_wp_get_media_creation_timestamp_video_quicktime() {
 		$metadata = array(
@@ -2449,6 +2642,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_get_media_creation_timestamp
 	 */
 	function test_wp_get_media_creation_timestamp_video_webm() {
 		$metadata = array(
@@ -2472,6 +2667,8 @@
 	 *`wp_read_audio_metadata()`.
 	 *
 	 * @ticket 42017
+	 *
+	 * @covers ::wp_read_audio_metadata
 	 */
 	function test_wp_read_audio_metadata_adds_creation_date_with_mp4() {
 		$video    = DIR_TESTDATA . '/uploads/small-video.mp4';
@@ -2482,6 +2679,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_read_video_metadata
 	 */
 	function test_wp_read_video_metadata_adds_creation_date_with_quicktime() {
 		$video    = DIR_TESTDATA . '/uploads/small-video.mov';
@@ -2492,6 +2691,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_read_video_metadata
 	 */
 	function test_wp_read_video_metadata_adds_creation_date_with_mp4() {
 		$video    = DIR_TESTDATA . '/uploads/small-video.mp4';
@@ -2502,6 +2703,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_read_video_metadata
 	 */
 	function test_wp_read_video_metadata_adds_creation_date_with_mkv() {
 		$video    = DIR_TESTDATA . '/uploads/small-video.mkv';
@@ -2512,6 +2715,8 @@
 
 	/**
 	 * @ticket 35218
+	 *
+	 * @covers ::wp_read_video_metadata
 	 */
 	function test_wp_read_video_metadata_adds_creation_date_with_webm() {
 		$video    = DIR_TESTDATA . '/uploads/small-video.webm';
@@ -2522,6 +2727,8 @@
 
 	/**
 	 * @ticket 10752
+	 *
+	 * @covers ::media_handle_upload
 	 */
 	public function test_media_handle_upload_uses_post_parent_for_directory_date() {
 		$iptc_file = DIR_TESTDATA . '/images/test-image-iptc.jpg';
@@ -2568,6 +2775,8 @@
 
 	/**
 	 * @ticket 10752
+	 *
+	 * @covers ::media_handle_upload
 	 */
 	public function test_media_handle_upload_ignores_page_parent_for_directory_date() {
 		$iptc_file = DIR_TESTDATA . '/images/test-image-iptc.jpg';
@@ -2620,6 +2829,8 @@
 
 	/**
 	 * @ticket 50367
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_width_height() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2665,6 +2876,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50367
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_loading_lazy() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2713,6 +2926,8 @@
 
 	/**
 	 * @ticket 44427
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_loading_lazy_opted_in() {
 		$img      = get_image_tag( self::$large_id, '', '', '', 'medium' );
@@ -2738,6 +2953,8 @@
 
 	/**
 	 * @ticket 44427
+	 *
+	 * @covers ::wp_filter_content_tags
 	 */
 	function test_wp_filter_content_tags_loading_lazy_opted_out() {
 		$img = get_image_tag( self::$large_id, '', '', '', 'medium' );
@@ -2761,6 +2978,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50367
+	 *
+	 * @covers ::wp_img_tag_add_loading_attr
 	 */
 	function test_wp_img_tag_add_loading_attr() {
 		$img = '<img src="example.png" alt=" width="300" height="225" />';
@@ -2772,6 +2991,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50367
+	 *
+	 * @covers ::wp_img_tag_add_loading_attr
 	 */
 	function test_wp_img_tag_add_loading_attr_without_src() {
 		$img = '<img alt=" width="300" height="225" />';
@@ -2783,6 +3004,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50367
+	 *
+	 * @covers ::wp_img_tag_add_loading_attr
 	 */
 	function test_wp_img_tag_add_loading_attr_with_single_quotes() {
 		$img = "<img src='example.png' alt=' width='300' height='225' />";
@@ -2798,6 +3021,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50425
+	 *
+	 * @covers ::wp_img_tag_add_loading_attr
 	 */
 	function test_wp_img_tag_add_loading_attr_opt_out() {
 		$img = '<img src="example.png" alt=" width="300" height="225" />';
@@ -2809,6 +3034,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50425
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_loading() {
 		$img = wp_get_attachment_image( self::$large_id );
@@ -2819,6 +3046,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50425
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_loading_opt_out() {
 		add_filter( 'wp_lazy_loading_enabled', '__return_false' );
@@ -2831,6 +3060,8 @@
 	/**
 	 * @ticket 44427
 	 * @ticket 50425
+	 *
+	 * @covers ::wp_get_attachment_image
 	 */
 	function test_wp_get_attachment_image_loading_opt_out_individual() {
 		// The default is already tested above, the filter below ensures that
@@ -2850,6 +3081,8 @@
 	 *
 	 * @param string $tag_name Tag name.
 	 * @param bool   $expected Expected return value.
+	 *
+	 * @covers ::wp_lazy_loading_enabled
 	 */
 	function test_wp_lazy_loading_enabled_tag_name_defaults( $tag_name, $expected ) {
 		if ( $expected ) {
@@ -2873,6 +3106,8 @@
 	 *
 	 * @param string $context  Function context.
 	 * @param bool   $expected Expected return value.
+	 *
+	 * @covers ::wp_lazy_loading_enabled
 	 */
 	function test_wp_lazy_loading_enabled_context_defaults( $context, $expected ) {
 		if ( $expected ) {
@@ -2895,6 +3130,8 @@
 
 	/**
 	 * @ticket 50543
+	 *
+	 * @covers ::wp_image_file_matches_image_meta
 	 */
 	function test_wp_image_file_matches_image_meta() {
 		$image_meta       = wp_get_attachment_metadata( self::$large_id );
@@ -2907,6 +3144,8 @@
 
 	/**
 	 * @ticket 50543
+	 *
+	 * @covers ::wp_image_file_matches_image_meta
 	 */
 	function test_wp_image_file_matches_image_meta_no_subsizes() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2919,6 +3158,8 @@
 
 	/**
 	 * @ticket 50543
+	 *
+	 * @covers ::wp_image_file_matches_image_meta
 	 */
 	function test_wp_image_file_matches_image_meta_invalid_meta() {
 		$image_meta = ''; // Attachment is not an image.
@@ -2929,6 +3170,8 @@
 
 	/**
 	 * @ticket 50543
+	 *
+	 * @covers ::wp_image_file_matches_image_meta
 	 */
 	function test_wp_image_file_matches_image_meta_different_meta() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2939,6 +3182,8 @@
 
 	/**
 	 * @ticket 50543
+	 *
+	 * @covers ::wp_image_file_matches_image_meta
 	 */
 	function test_wp_image_file_matches_image_meta_original_image() {
 		$image_meta = wp_get_attachment_metadata( self::$large_id );
@@ -2949,6 +3194,8 @@
 
 	/**
 	 * @ticket 22101
+	 *
+	 * @covers ::gallery_shortcode
 	 */
 	function test_gallery_shortcode_when_is_feed_true() {
 
Index: tests/phpunit/tests/meta.php
===================================================================
--- tests/phpunit/tests/meta.php	(revision 48816)
+++ tests/phpunit/tests/meta.php	(working copy)
@@ -17,6 +17,10 @@
 		return 'sanitized';
 	}
 
+	/**
+	 *
+	 * @covers ::sanitize_meta
+	 */
 	function test_sanitize_meta() {
 		$meta = sanitize_meta( 'some_meta', 'unsanitized', 'post' );
 		$this->assertEquals( 'unsanitized', $meta );
@@ -26,6 +30,10 @@
 		$this->assertEquals( 'sanitized', $meta );
 	}
 
+	/**
+	 *
+	 * @covers ::delete_metadata_by_mid
+	 */
 	function test_delete_metadata_by_mid() {
 		// Let's try and delete a non-existing ID, non existing meta.
 		$this->assertFalse( delete_metadata_by_mid( 'user', 0 ) );
@@ -41,6 +49,10 @@
 		$this->assertFalse( (bool) get_user_meta( $this->author->ID, 'delete_meta_key' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::delete_metadata_by_mid
+	 */
 	function test_update_metadata_by_mid() {
 		// Setup.
 		$meta = get_metadata_by_mid( 'user', $this->meta_id );
@@ -80,6 +92,8 @@
 
 	/**
 	 * @ticket 11683
+	 *
+	 * @covers ::add_metadata
 	 */
 	public function test_update_metadata_hooks_for_multiple_updated_rows() {
 		add_metadata( 'post', 1, 'test_key', 'value_1' );
@@ -104,6 +118,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::metadata_exists
+	 */
 	function test_metadata_exists() {
 		$this->assertFalse( metadata_exists( 'user', $this->author->ID, 'foobarbaz' ) );
 		$this->assertTrue( metadata_exists( 'user', $this->author->ID, 'meta_key' ) );
@@ -113,6 +131,8 @@
 
 	/**
 	 * @ticket 22746
+	 *
+	 * @covers ::metadata_exists
 	 */
 	function test_metadata_exists_with_filter() {
 		// Let's see if it returns the correct value when adding a filter.
@@ -124,6 +144,8 @@
 
 	/**
 	 * @ticket 18158
+	 *
+	 * @covers ::get_users
 	 */
 	function test_user_metadata_not_exists() {
 		$u = get_users(
@@ -198,6 +220,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_metadata
+	 */
 	function test_metadata_slashes() {
 		$key       = __FUNCTION__;
 		$value     = 'Test\\singleslash';
@@ -230,6 +256,8 @@
 
 	/**
 	 * @ticket 16814
+	 *
+	 * @covers ::add_post_meta
 	 */
 	function test_meta_type_cast() {
 		$post_id1 = self::factory()->post->create();
@@ -320,6 +348,12 @@
 
 	/**
 	 * @ticket 28315
+	 *
+	 * @covers ::add_post_meta
+	 * @covers ::update_metadata
+	 * @covers ::delete_metadata
+	 * @covers ::get_metadata
+	 * @covers ::metadata_exists
 	 */
 	function test_non_numeric_object_id() {
 		$this->assertFalse( add_metadata( 'user', array( 1 ), 'meta_key', 'meta_value' ) );
@@ -331,6 +365,10 @@
 
 	/**
 	 * @ticket 28315
+	 *
+	 * @covers ::add_post_meta
+	 * @covers ::update_metadata
+	 * @covers ::delete_metadata
 	 */
 	function test_non_numeric_meta_id() {
 		$this->assertFalse( get_metadata_by_mid( 'user', array( 1 ) ) );
@@ -340,6 +378,10 @@
 
 	/**
 	 * @ticket 37746
+	 *
+	 * @covers ::add_post_meta
+	 * @covers ::update_metadata
+	 * @covers ::delete_metadata
 	 */
 	function test_negative_meta_id() {
 		$negative_mid = $this->meta_id * -1;
@@ -352,6 +394,10 @@
 
 	/**
 	 * @ticket 37746
+	 *
+	 * @covers ::add_post_meta
+	 * @covers ::update_metadata
+	 * @covers ::delete_metadata
 	 */
 	function test_floating_meta_id() {
 		$floating_mid = $this->meta_id + 0.1337;
@@ -364,6 +410,10 @@
 
 	/**
 	 * @ticket 37746
+	 *
+	 * @covers ::add_post_meta
+	 * @covers ::update_metadata
+	 * @covers ::delete_metadata
 	 */
 	function test_string_point_zero_meta_id() {
 		$meta_id = add_metadata( 'user', $this->author->ID, 'meta_key', 'meta_value_2' );
@@ -379,6 +429,8 @@
 
 	/**
 	 * @ticket 15030
+	 *
+	 * @covers ::get_metadata
 	 */
 	public function test_get_metadata_with_empty_key_array_value() {
 		$data  = array( 1, 2 );
@@ -391,6 +443,8 @@
 
 	/**
 	 * @ticket 15030
+	 *
+	 * @covers ::get_metadata
 	 */
 	public function test_get_metadata_with_empty_key_object_value() {
 		$data      = new stdClass;
@@ -404,6 +458,8 @@
 
 	/**
 	 * @ticket 15030
+	 *
+	 * @covers ::get_metadata
 	 */
 	public function test_get_metadata_with_empty_key_nested_array_value() {
 		$data  = array(
Index: tests/phpunit/tests/multisite.php
===================================================================
--- tests/phpunit/tests/multisite.php	(revision 48816)
+++ tests/phpunit/tests/multisite.php	(working copy)
@@ -22,6 +22,10 @@
 			$wpdb->suppress_errors( $this->suppress );
 		}
 
+		/**
+		 *
+		 * @covers ::wpmu_log_new_registrations
+		 */
 		function test_wpmu_log_new_registrations() {
 			global $wpdb;
 
@@ -37,6 +41,8 @@
 
 		/**
 		 * @ticket 37392
+		 *
+		 * @covers ::wp_count_sites
 		 */
 		function test_wp_count_sites() {
 			// Create a random number of sites with each status.
Index: tests/phpunit/tests/pluggable.php
===================================================================
--- tests/phpunit/tests/pluggable.php	(revision 48816)
+++ tests/phpunit/tests/pluggable.php	(working copy)
@@ -12,6 +12,8 @@
 	 * @ticket 33867
 	 *
 	 * @dataProvider get_defined_pluggable_functions
+	 *
+	 * @coversNothing
 	 */
 	public function test_pluggable_function_signatures_match( $function ) {
 
@@ -53,6 +55,8 @@
 	 *
 	 * @ticket 33654
 	 * @ticket 33867
+	 *
+	 * @coversNothing
 	 */
 	public function test_all_pluggable_functions_exist() {
 
Index: tests/phpunit/tests/post.php
===================================================================
--- tests/phpunit/tests/post.php	(revision 48816)
+++ tests/phpunit/tests/post.php	(working copy)
@@ -58,6 +58,9 @@
 
 	/**
 	 * Test simple valid behavior: insert and get a post.
+	 *
+	 * @covers ::wp_insert_post
+	 * @covers ::wp_delete_post
 	 */
 	function test_vb_insert_get_delete() {
 		register_post_type( 'cpt', array( 'taxonomies' => array( 'post_tag', 'ctax' ) ) );
@@ -119,6 +122,8 @@
 
 	/**
 	 * Insert a post with a future date, and make sure the status and cron schedule are correct.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future() {
 		$future_date = strtotime( '+1 day' );
@@ -153,6 +158,8 @@
 
 	/**
 	 * Insert a post with a future date, and make sure the status and cron schedule are correct.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_over_dst() {
 		// Some magic days - one DST one not.
@@ -199,6 +206,8 @@
 	 * Future post bug: posts get published at the wrong time if you edit the timestamp.
 	 *
 	 * @ticket 4710
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_edit_bug() {
 		$future_date_1 = strtotime( '+1 day' );
@@ -242,6 +251,8 @@
 
 	/**
 	 * Insert a draft post with a future date, and make sure no cron schedule is set.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_draft() {
 		$future_date = strtotime( '+1 day' );
@@ -277,6 +288,8 @@
 
 	/**
 	 * Insert a future post, then edit and change it to draft, and make sure cron gets it right.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_change_to_draft() {
 		$future_date_1 = strtotime( '+1 day' );
@@ -318,6 +331,8 @@
 
 	/**
 	 * Insert a future post, then edit and change the status, and make sure cron gets it right.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_change_status() {
 		$future_date_1 = strtotime( '+1 day' );
@@ -363,6 +378,8 @@
 
 	/**
 	 * Insert a draft post with a future date, and make sure no cron schedule is set.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_private() {
 		$future_date = strtotime( '+1 day' );
@@ -399,6 +416,8 @@
 	 * Insert a post with an invalid date, make sure it fails.
 	 *
 	 * @ticket 17180
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_invalid_date() {
 		$post = array(
@@ -420,6 +439,8 @@
 
 	/**
 	 * Insert a future post, then edit and change it to private, and make sure cron gets it right.
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_vb_insert_future_change_to_private() {
 		$future_date_1 = strtotime( '+1 day' );
@@ -461,6 +482,8 @@
 
 	/**
 	 * @ticket 5305
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_wp_insert_post_should_not_allow_a_bare_numeric_slug_that_might_conflict_with_a_date_archive_when_generating_from_an_empty_post_title() {
 		$this->set_permalink_structure( '/%postname%/' );
@@ -484,6 +507,8 @@
 	/**
 	 * @ticket 5305
 	 * @ticket 33392
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_wp_insert_post_should_invalidate_post_cache_before_generating_guid_when_post_name_is_empty_and_is_generated_from_the_post_ID() {
 		register_post_type( 'wptests_pt' );
@@ -503,6 +528,8 @@
 
 	/**
 	 * @ticket 20451
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_wp_insert_post_with_meta_input() {
 		$post_id = wp_insert_post(
@@ -526,6 +553,8 @@
 	 * "When I delete a future post using wp_delete_post( $post->ID ) it does not update the cron correctly."
 	 *
 	 * @ticket 5364
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_delete_future_post_cron() {
 		$future_date = strtotime( '+1 day' );
@@ -557,6 +586,8 @@
 	 * Might only fail if the post ID is greater than four characters.
 	 *
 	 * @ticket 5305
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_permalink_without_title() {
 		$this->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
@@ -593,6 +624,8 @@
 
 	/**
 	 * @ticket 22944
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_and_wp_publish_post_with_future_date() {
 		$future_date = gmdate( 'Y-m-d H:i:s', time() + 10000000 );
@@ -616,6 +649,8 @@
 
 	/**
 	 * @ticket 48145
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_should_default_to_publish_if_post_date_is_within_59_seconds_from_current_time() {
 		$future_date = gmdate( 'Y-m-d H:i:s', time() + 59 );
@@ -632,6 +667,9 @@
 
 	/**
 	 * @ticket 22944
+	 *
+	 * @covers ::wp_insert_post
+	 * @covers ::wp_update_post
 	 */
 	function test_publish_post_with_content_filtering() {
 		kses_remove_filters();
@@ -657,6 +695,9 @@
 
 	/**
 	 * @ticket 22944
+	 *
+	 * @covers ::wp_insert_post
+	 * @covers ::wp_update_post
 	 */
 	function test_wp_publish_post_and_avoid_content_filtering() {
 		kses_remove_filters();
@@ -677,6 +718,8 @@
 
 	/**
 	 * @ticket 23708
+	 *
+	 * @covers ::get_post_ancestors
 	 */
 	function test_get_post_ancestors_within_loop() {
 		global $post;
@@ -687,6 +730,9 @@
 
 	/**
 	 * @ticket 23474
+	 *
+	 * @covers ::wp_insert_post
+	 * @covers ::wp_update_post
 	 */
 	function test_update_invalid_post_id() {
 		$post_id = self::factory()->post->create( array( 'post_name' => 'get-page-uri-post-name' ) );
@@ -702,6 +748,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers ::setup_postdata
+	 */
 	function test_parse_post_content_single_page() {
 		global $multipage, $pages, $numpages;
 		$post_id = self::factory()->post->create( array( 'post_content' => 'Page 0' ) );
@@ -713,6 +763,10 @@
 		$this->assertEquals( array( 'Page 0' ), $pages );
 	}
 
+	/**
+	 *
+	 * @covers ::setup_postdata
+	 */
 	function test_parse_post_content_multi_page() {
 		global $multipage, $pages, $numpages;
 		$post_id = self::factory()->post->create( array( 'post_content' => 'Page 0<!--nextpage-->Page 1<!--nextpage-->Page 2<!--nextpage-->Page 3' ) );
@@ -724,6 +778,10 @@
 		$this->assertEquals( array( 'Page 0', 'Page 1', 'Page 2', 'Page 3' ), $pages );
 	}
 
+	/**
+	 *
+	 * @covers ::setup_postdata
+	 */
 	function test_parse_post_content_remaining_single_page() {
 		global $multipage, $pages, $numpages;
 		$post_id = self::factory()->post->create( array( 'post_content' => 'Page 0' ) );
@@ -735,6 +793,10 @@
 		$this->assertEquals( array( 'Page 0' ), $pages );
 	}
 
+	/**
+	 *
+	 * @covers ::setup_postdata
+	 */
 	function test_parse_post_content_remaining_multi_page() {
 		global $multipage, $pages, $numpages;
 		$post_id = self::factory()->post->create( array( 'post_content' => 'Page 0<!--nextpage-->Page 1<!--nextpage-->Page 2<!--nextpage-->Page 3' ) );
@@ -748,6 +810,8 @@
 
 	/**
 	 * @ticket 16746
+	 *
+	 * @covers ::setup_postdata
 	 */
 	function test_parse_post_content_starting_with_nextpage() {
 		global $multipage, $pages, $numpages;
@@ -762,6 +826,8 @@
 
 	/**
 	 * @ticket 16746
+	 *
+	 * @covers ::setup_postdata
 	 */
 	function test_parse_post_content_starting_with_nextpage_multi() {
 		global $multipage, $pages, $numpages;
@@ -776,6 +842,8 @@
 
 	/**
 	 * @ticket 19373
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_insert_programmatic_sanitized() {
 		$this->_unset_current_user();
@@ -802,6 +870,8 @@
 
 	/**
 	 * @ticket 24803
+	 *
+	 * @covers ::wp_count_posts
 	 */
 	function test_wp_count_posts() {
 		$post_type = rand_str( 20 );
@@ -818,6 +888,10 @@
 		$this->assertEquals( new stdClass, wp_count_posts( $post_type, 'readable' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_count_posts
+	 */
 	function test_wp_count_posts_filtered() {
 		$post_type = rand_str( 20 );
 		register_post_type( $post_type );
@@ -843,6 +917,10 @@
 		return $counts;
 	}
 
+	/**
+	 *
+	 * @covers ::wp_count_posts
+	 */
 	function test_wp_count_posts_insert_invalidation() {
 		$post_ids       = self::factory()->post->create_many( 3 );
 		$initial_counts = wp_count_posts();
@@ -861,6 +939,10 @@
 		$this->assertNotEquals( $initial_counts->publish, $after_draft_counts->publish );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_count_posts
+	 */
 	function test_wp_count_posts_trash_invalidation() {
 		$post_ids       = self::factory()->post->create_many( 3 );
 		$initial_counts = wp_count_posts();
@@ -881,6 +963,8 @@
 
 	/**
 	 * @ticket 49685
+	 *
+	 * @covers ::wp_count_posts
 	 */
 	function test_wp_count_posts_status_changes_visible() {
 		self::factory()->post->create_many( 3 );
@@ -897,6 +981,8 @@
 
 	/**
 	 * @ticket 13771
+	 *
+	 * @covers ::get_the_date
 	 */
 	function test_get_the_date_with_id_returns_correct_time() {
 		$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
@@ -905,6 +991,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_the_date
 	 */
 	function test_get_the_date_returns_false_with_null_or_non_existing_post() {
 		$this->assertFalse( get_the_date() );
@@ -915,6 +1003,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_the_time
 	 */
 	function test_get_the_time_with_id_returns_correct_time() {
 		$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
@@ -923,6 +1013,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_the_time
 	 */
 	function test_get_the_time_returns_false_with_null_or_non_existing_post() {
 		$this->assertFalse( get_the_time() );
@@ -933,6 +1025,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_post_time
 	 */
 	function test_get_post_time_with_id_returns_correct_time() {
 		$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
@@ -941,6 +1035,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_post_time
 	 */
 	function test_get_post_time_returns_false_with_null_or_non_existing_post() {
 		$this->assertFalse( get_post_time() );
@@ -951,6 +1047,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_post_modified_time
 	 */
 	function test_get_post_modified_time_with_id_returns_correct_time() {
 		$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
@@ -959,6 +1057,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::get_post_modified_time
 	 */
 	function test_get_post_modified_time_returns_false_with_null_or_non_existing_post() {
 		$this->assertFalse( get_post_modified_time() );
@@ -969,6 +1069,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::mysql2date
 	 */
 	function test_mysql2date_returns_false_with_no_date() {
 		$this->assertFalse( mysql2date( 'F j, Y H:i:s', '' ) );
@@ -976,6 +1078,8 @@
 
 	/**
 	 * @ticket 28310
+	 *
+	 * @covers ::mysql2date
 	 */
 	function test_mysql2date_returns_gmt_or_unix_timestamp() {
 		$this->assertEquals( '441013392', mysql2date( 'G', '1983-12-23 07:43:12' ) );
@@ -984,6 +1088,8 @@
 
 	/**
 	 * @ticket 25566
+	 *
+	 * @covers ::wp_tag_cloud
 	 */
 	function test_wp_tag_cloud_link_with_post_type() {
 		$post_type = 'new_post_type';
@@ -1017,6 +1123,8 @@
 
 	/**
 	 * @ticket 21212
+	 *
+	 * @covers ::edit_post
 	 */
 	function test_utf8mb3_post_saves_with_emoji() {
 		global $wpdb;
@@ -1053,6 +1161,8 @@
 
 	/**
 	 * @ticket 31168
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_default_comment_ping_status_open() {
 		$post_id = self::factory()->post->create(
@@ -1071,6 +1181,8 @@
 
 	/**
 	 * @ticket 31168
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_page_default_comment_ping_status_closed() {
 		$post_id = self::factory()->post->create(
@@ -1090,6 +1202,8 @@
 
 	/**
 	 * @ticket 31168
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_cpt_default_comment_ping_status_open() {
 		$post_type = rand_str( 20 );
@@ -1112,6 +1226,8 @@
 
 	/**
 	 * @ticket 31168
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_cpt_default_comment_ping_status_closed() {
 		$post_type = rand_str( 20 );
@@ -1137,6 +1253,8 @@
 	 * it should _stay_ sticky.
 	 *
 	 * @ticket 24153
+	 *
+	 * @covers ::stick_post
 	 */
 	function test_user_without_publish_cannot_affect_sticky() {
 		wp_set_current_user( self::$grammarian_id );
@@ -1175,6 +1293,8 @@
 	 * the sticky status of the post should not be changed.
 	 *
 	 * @ticket 24153
+	 *
+	 * @covers ::stick_post
 	 */
 	function test_user_without_publish_cannot_affect_sticky_with_edit_post() {
 		// Create a sticky post.
@@ -1215,6 +1335,8 @@
 	 * Test that hooks are fired when post gets stuck and unstuck.
 	 *
 	 * @ticket 35600
+	 *
+	 * @covers ::stick_post
 	 */
 	function test_hooks_fire_when_post_gets_stuck_and_unstuck() {
 		$post_id = self::factory()->post->create();
@@ -1243,6 +1365,8 @@
 	 * a new slug should not be generated.
 	 *
 	 * @ticket 34865
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_post_updates_without_slug_provided() {
 		$post_id = self::factory()->post->create(
@@ -1266,6 +1390,8 @@
 
 	/**
 	 * @ticket 32585
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_wp_insert_post_author_zero() {
 		$post_id = self::factory()->post->create( array( 'post_author' => 0 ) );
@@ -1275,6 +1401,8 @@
 
 	/**
 	 * @ticket 32585
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_wp_insert_post_author_null() {
 		$post_id = self::factory()->post->create( array( 'post_author' => null ) );
@@ -1284,6 +1412,8 @@
 
 	/**
 	 * @ticket 15946
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_should_respect_post_date_gmt() {
 		$post = array(
@@ -1306,6 +1436,10 @@
 		$this->assertEquals( $post['post_date_gmt'], $out->post_date_gmt );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_delete_post
+	 */
 	function test_wp_delete_post_reassign_hierarchical_post_type() {
 		$grandparent_page_id = self::factory()->post->create( array( 'post_type' => 'page' ) );
 		$parent_page_id      = self::factory()->post->create(
@@ -1332,6 +1466,8 @@
 	 *
 	 * @see _wp_customize_changeset_filter_insert_post_data()
 	 * @ticket 30937
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_wp_insert_post_for_customize_changeset_should_not_drop_post_name() {
 
@@ -1385,6 +1521,8 @@
 	 *
 	 * @see wp_unique_post_slug()
 	 * @ticket 21112
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	function test_pre_wp_unique_post_slug_filter() {
 		add_filter( 'pre_wp_unique_post_slug', array( $this, 'filter_pre_wp_unique_post_slug' ), 10, 6 );
@@ -1408,6 +1546,8 @@
 
 	/**
 	 * @ticket 48113
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_insert_post_should_respect_date_floating_post_status_arg() {
 		register_post_status( 'floating', array( 'date_floating' => true ) );
@@ -1426,6 +1566,8 @@
 
 	/**
 	 * @ticket 48113
+	 *
+	 * @covers ::wp_insert_post
 	 */
 	public function test_insert_post_should_respect_date_floating_post_status_arg_not_set() {
 		register_post_status( 'not-floating', array( 'date_floating' => false ) );
@@ -1450,6 +1592,8 @@
 	 * and is different from the existing tags.
 	 *
 	 * @ticket 45121
+	 *
+	 * @covers ::wp_update_post
 	 */
 	public function test_update_post_should_only_modify_post_tags_if_different_tags_input_was_provided() {
 		$tag_1 = wp_insert_term( 'wp_update_post_tag', 'post_tag', array( 'slug' => 'wp_update_post_tag_1' ) );
Index: tests/phpunit/tests/post/nav-menu.php
===================================================================
--- tests/phpunit/tests/post/nav-menu.php	(revision 48816)
+++ tests/phpunit/tests/post/nav-menu.php	(working copy)
@@ -679,7 +679,7 @@
 	/**
 	 * Test _wp_delete_customize_changeset_dependent_auto_drafts.
 	 *
-	 * @covers ::_wp_delete_customize_changeset_dependent_auto_drafts()
+	 * @covers ::_wp_delete_customize_changeset_dependent_auto_drafts
 	 */
 	function test_wp_delete_customize_changeset_dependent_auto_drafts() {
 		$auto_draft_post_id = $this->factory()->post->create(
Index: tests/phpunit/tests/post/types.php
===================================================================
--- tests/phpunit/tests/post/types.php	(revision 48816)
+++ tests/phpunit/tests/post/types.php	(working copy)
@@ -68,7 +68,7 @@
 
 	/**
 	 * @ticket 35985
-	 * @covers ::register_post_type()
+	 * @covers ::register_post_type
 	 */
 	function test_register_post_type_exclude_from_search_should_default_to_opposite_value_of_public() {
 		/*
@@ -82,7 +82,7 @@
 
 	/**
 	 * @ticket 35985
-	 * @covers ::register_post_type()
+	 * @covers ::register_post_type
 	 */
 	function test_register_post_type_publicly_queryable_should_default_to_value_of_public() {
 		/*
@@ -96,7 +96,7 @@
 
 	/**
 	 * @ticket 35985
-	 * @covers ::register_post_type()
+	 * @covers ::register_post_type
 	 */
 	function test_register_post_type_show_ui_should_default_to_value_of_public() {
 		/*
@@ -110,7 +110,7 @@
 
 	/**
 	 * @ticket 35985
-	 * @covers ::register_post_type()
+	 * @covers ::register_post_type
 	 */
 	function test_register_post_type_show_in_menu_should_default_to_value_of_show_ui() {
 		/*
@@ -129,7 +129,7 @@
 
 	/**
 	 * @ticket 35985
-	 * @covers ::register_post_type()
+	 * @covers ::register_post_type
 	 */
 	function test_register_post_type_show_in_nav_menus_should_default_to_value_of_public() {
 		/*
@@ -143,7 +143,7 @@
 
 	/**
 	 * @ticket 35985
-	 * @covers ::register_post_type()
+	 * @covers ::register_post_type
 	 */
 	function test_register_post_type_show_in_admin_bar_should_default_to_value_of_show_in_menu() {
 		/*
Index: tests/phpunit/tests/query.php
===================================================================
--- tests/phpunit/tests/query.php	(revision 48816)
+++ tests/phpunit/tests/query.php	(working copy)
@@ -11,6 +11,8 @@
 
 	/**
 	 * @ticket 24785
+	 *
+	 * @covers WP_Query::reset_postdata
 	 */
 	function test_nested_loop_reset_postdata() {
 		$post_id        = self::factory()->post->create();
@@ -31,6 +33,8 @@
 
 	/**
 	 * @ticket 16471
+	 *
+	 * @covers WP_Query::get
 	 */
 	function test_default_query_var() {
 		$query = new WP_Query;
@@ -41,6 +45,8 @@
 
 	/**
 	 * @ticket 25380
+	 *
+	 * @covers WP_Query::get_posts
 	 */
 	function test_pre_posts_per_page() {
 		self::factory()->post->create_many( 10 );
@@ -58,6 +64,10 @@
 
 	/**
 	 * @ticket 26627
+	 *
+	 * @covers ::get_term_by
+	 * @covers ::get_query_var
+	 * @covers ::get_queried_object
 	 */
 	function test_tag_queried_object() {
 		$slug = 'tag-slug-26627';
@@ -89,6 +99,8 @@
 
 	/**
 	 * @ticket 31246
+	 *
+	 * @covers WP_Query::get_queried_object
 	 */
 	public function test_get_queried_object_should_return_null_when_is_tax_is_true_but_the_taxonomy_args_have_been_removed_in_a_parse_query_callback() {
 		// Don't override the args provided below.
@@ -125,6 +137,8 @@
 
 	/**
 	 * @ticket 37962
+	 *
+	 * @covers WP_Query::get_queried_object
 	 */
 	public function test_get_queried_object_should_return_null_for_not_exists_tax_query() {
 		register_taxonomy( 'wptests_tax', 'post' );
@@ -144,6 +158,10 @@
 		$this->assertNull( $queried_object );
 	}
 
+	/**
+	 *
+	 * @covers WP_Query::__construct
+	 */
 	public function test_orderby_space_separated() {
 		global $wpdb;
 
@@ -157,6 +175,10 @@
 		$this->assertContains( "ORDER BY $wpdb->posts.post_title DESC, $wpdb->posts.post_date DESC", $q->request );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_set_object_terms
+	 */
 	public function test_cat_querystring_single_term() {
 		$c1 = self::factory()->category->create(
 			array(
@@ -193,6 +215,10 @@
 		$this->assertEqualSets( array( $p1, $p2 ), $matching_posts );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_set_object_terms
+	 */
 	public function test_category_querystring_multiple_terms_comma_separated() {
 		$c1 = self::factory()->category->create(
 			array(
@@ -239,6 +265,8 @@
 
 	/**
 	 * @ticket 33532
+	 *
+	 * @covers ::wp_set_object_terms
 	 */
 	public function test_category_querystring_multiple_terms_formatted_as_array() {
 		$c1 = self::factory()->category->create(
@@ -284,7 +312,10 @@
 		$this->assertEqualSets( array( $p1, $p2, $p3 ), $matching_posts );
 	}
 
-
+	/**
+	 *
+	 * @covers ::wp_set_object_terms
+	 */
 	public function test_tag_querystring_single_term() {
 		$t1 = self::factory()->tag->create_and_get(
 			array(
@@ -321,6 +352,10 @@
 		$this->assertEqualSets( array( $p1, $p2 ), $matching_posts );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_set_object_terms
+	 */
 	public function test_tag_querystring_multiple_terms_comma_separated() {
 		$c1 = self::factory()->tag->create_and_get(
 			array(
@@ -367,6 +402,8 @@
 
 	/**
 	 * @ticket 33532
+	 *
+	 * @covers WP_Query::get_posts
 	 */
 	public function test_tag_querystring_multiple_terms_formatted_as_array() {
 		$c1 = self::factory()->tag->create_and_get(
@@ -412,6 +449,10 @@
 		$this->assertEqualSets( array( $p1, $p2, $p3 ), $matching_posts );
 	}
 
+	/**
+	 *
+	 * @covers WP_Query::get_posts
+	 */
 	public function test_custom_taxonomy_querystring_single_term() {
 		register_taxonomy( 'test_tax_cat', 'post' );
 
@@ -439,6 +480,10 @@
 		$this->assertEqualSets( array( $p1, $p2 ), wp_list_pluck( $GLOBALS['wp_query']->posts, 'ID' ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_Query::get_posts
+	 */
 	public function test_custom_taxonomy_querystring_multiple_terms_comma_separated() {
 		register_taxonomy( 'test_tax_cat', 'post' );
 
@@ -470,6 +515,8 @@
 
 	/**
 	 * @ticket 32454
+	 *
+	 * @covers WP_Query::get_posts
 	 */
 	public function test_custom_taxonomy_querystring_multiple_terms_formatted_as_array() {
 		register_taxonomy( 'test_tax_cat', 'post' );
@@ -502,6 +549,8 @@
 
 	/**
 	 * @ticket 31355
+	 *
+	 * @covers WP_Query::is_404
 	 */
 	public function test_pages_dont_404_when_queried_post_id_is_modified() {
 		$post_id = self::factory()->post->create(
@@ -524,6 +573,8 @@
 
 	/**
 	 * @ticket 31355
+	 *
+	 * @covers WP_Query::is_404
 	 */
 	public function test_custom_hierarchical_post_types_404_when_queried_post_id_is_modified() {
 		global $wp_rewrite;
@@ -561,6 +612,8 @@
 
 	/**
 	 * @ticket 34060
+	 *
+	 * @covers WP_Query::__construct
 	 */
 	public function test_offset_0_should_override_page() {
 		$q = new WP_Query(
@@ -576,6 +629,8 @@
 
 	/**
 	 * @ticket 34060
+	 *
+	 * @covers WP_Query::__construct
 	 */
 	public function test_offset_should_be_ignored_when_not_set() {
 		$q = new WP_Query(
@@ -590,6 +645,8 @@
 
 	/**
 	 * @ticket 34060
+	 *
+	 * @covers WP_Query::__construct
 	 */
 	public function test_offset_should_be_ignored_when_passed_a_non_numeric_value() {
 		$q = new WP_Query(
@@ -605,6 +662,8 @@
 
 	/**
 	 * @ticket 35601
+	 *
+	 * @covers WP_Query::__construct
 	 */
 	public function test_comment_status() {
 		$p1 = self::factory()->post->create( array( 'comment_status' => 'open' ) );
@@ -622,6 +681,8 @@
 
 	/**
 	 * @ticket 35601
+	 *
+	 * @covers WP_Query::__construct
 	 */
 	public function test_ping_status() {
 		$p1 = self::factory()->post->create( array( 'ping_status' => 'open' ) );
@@ -639,6 +700,8 @@
 
 	/**
 	 * @ticket 35619
+	 *
+	 * @covers ::get_queried_object
 	 */
 	public function test_get_queried_object_should_return_first_of_multiple_terms() {
 		register_taxonomy( 'tax1', 'post' );
@@ -669,6 +732,8 @@
 
 	/**
 	 * @ticket 35619
+	 *
+	 * @covers ::get_queried_object
 	 */
 	public function test_query_vars_should_match_first_of_multiple_terms() {
 		register_taxonomy( 'tax1', 'post' );
Index: tests/phpunit/tests/rest-api.php
===================================================================
--- tests/phpunit/tests/rest-api.php	(revision 48816)
+++ tests/phpunit/tests/rest-api.php	(working copy)
@@ -29,6 +29,11 @@
 
 	/**
 	 * Checks that the main classes are loaded.
+	 *
+	 * @covers WP_REST_Server::__construct
+	 * @covers WP_REST_Request::__construct
+	 * @covers WP_REST_Response::__construct
+	 * @covers WP_REST_Posts_Controller::__construct
 	 */
 	function test_rest_api_active() {
 		$this->assertTrue( class_exists( 'WP_REST_Server' ) );
@@ -40,11 +45,16 @@
 	/**
 	 * The rest_api_init hook should have been registered with init, and should
 	 * have a default priority of 10.
+	 *
+	 * @covers ::rest_api_init
 	 */
 	function test_init_action_added() {
 		$this->assertEquals( 10, has_action( 'init', 'rest_api_init' ) );
 	}
 
+	/**
+	 * @covers ::create_initial_taxonomies
+	 */
 	public function test_add_extra_api_taxonomy_arguments() {
 		$taxonomy = get_taxonomy( 'category' );
 		$this->assertTrue( $taxonomy->show_in_rest );
@@ -57,6 +67,9 @@
 		$this->assertEquals( 'WP_REST_Terms_Controller', $taxonomy->rest_controller_class );
 	}
 
+	/**
+	 * @covers ::create_initial_post_types
+	 */
 	public function test_add_extra_api_post_type_arguments() {
 		$post_type = get_post_type_object( 'post' );
 		$this->assertTrue( $post_type->show_in_rest );
@@ -78,6 +91,8 @@
 	 * Check that a single route is canonicalized.
 	 *
 	 * Ensures that single and multiple routes are handled correctly.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_canonicalized() {
 		register_rest_route(
@@ -114,6 +129,8 @@
 	 * Check that a single route is canonicalized.
 	 *
 	 * Ensures that single and multiple routes are handled correctly.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_canonicalized_multiple() {
 		register_rest_route(
@@ -157,6 +174,8 @@
 
 	/**
 	 * Check that routes are merged by default.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_merge() {
 		register_rest_route(
@@ -186,6 +205,8 @@
 
 	/**
 	 * Check that we can override routes.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_override() {
 		register_rest_route(
@@ -224,6 +245,8 @@
 	 * Test that we reject routes without namespaces
 	 *
 	 * @expectedIncorrectUsage register_rest_route
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_reject_empty_namespace() {
 		register_rest_route(
@@ -244,6 +267,8 @@
 	 * Test that we reject empty routes
 	 *
 	 * @expectedIncorrectUsage register_rest_route
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_reject_empty_route() {
 		register_rest_route(
@@ -262,6 +287,8 @@
 
 	/**
 	 * The rest_route query variable should be registered.
+	 *
+	 * @covers ::rest_api_init
 	 */
 	function test_rest_route_query_var() {
 		rest_api_init();
@@ -268,6 +295,9 @@
 		$this->assertTrue( in_array( 'rest_route', $GLOBALS['wp']->public_query_vars, true ) );
 	}
 
+	/**
+	 * @covers ::register_rest_route
+	 */
 	public function test_route_method() {
 		register_rest_route(
 			'test-ns',
@@ -286,6 +316,8 @@
 
 	/**
 	 * The 'methods' arg should accept a single value as well as array.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_method_string() {
 		register_rest_route(
@@ -305,6 +337,8 @@
 
 	/**
 	 * The 'methods' arg should accept a single value as well as array.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_method_array() {
 		register_rest_route(
@@ -330,6 +364,8 @@
 
 	/**
 	 * The 'methods' arg should a comma-separated string.
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_route_method_comma_separated() {
 		register_rest_route(
@@ -353,6 +389,9 @@
 		);
 	}
 
+	/**
+	 * @covers ::register_rest_route
+	 */
 	public function test_options_request() {
 		register_rest_route(
 			'test-ns',
@@ -375,6 +414,8 @@
 
 	/**
 	 * Ensure that the OPTIONS handler doesn't kick in for non-OPTIONS requests.
+	 *
+	 * @covers ::rest_handle_options_request
 	 */
 	public function test_options_request_not_options() {
 		register_rest_route(
@@ -395,6 +436,8 @@
 
 	/**
 	 * Ensure that result fields are not allowed if no request['_fields'] is present.
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_no_request_filter() {
 		$response = new WP_REST_Response();
@@ -407,6 +450,8 @@
 
 	/**
 	 * Ensure that result fields are allowed if request['_fields'] is present.
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_single_field_filter() {
 		$response = new WP_REST_Response();
@@ -427,6 +472,8 @@
 
 	/**
 	 * Ensure that multiple comma-separated fields may be allowed with request['_fields'].
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_multi_field_filter() {
 		$response = new WP_REST_Response();
@@ -458,6 +505,8 @@
 	/**
 	 * Ensure that multiple comma-separated fields may be allowed
 	 * with request['_fields'] using query parameter array syntax.
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_multi_field_filter_array() {
 		$response = new WP_REST_Response();
@@ -489,6 +538,8 @@
 
 	/**
 	 * Ensure that request['_fields'] allowed list apply to items in response collections.
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_numeric_array() {
 		$response = new WP_REST_Response();
@@ -539,6 +590,8 @@
 	 * Ensure that nested fields may be allowed with request['_fields'].
 	 *
 	 * @ticket 42094
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_nested_field_filter() {
 		$response = new WP_REST_Response();
@@ -580,6 +633,8 @@
 	 * Ensure inclusion of deeply nested fields may be controlled with request['_fields'].
 	 *
 	 * @ticket 49648
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_deeply_nested_field_filter() {
 		$response = new WP_REST_Response();
@@ -622,6 +677,8 @@
 	 * Ensure that specifying a single top-level key in _fields includes that field and all children.
 	 *
 	 * @ticket 48266
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_top_level_key() {
 		$response = new WP_REST_Response();
@@ -654,6 +711,8 @@
 	 * Ensure that a top-level key in _fields supersedes any specified children of that field.
 	 *
 	 * @ticket 48266
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_child_after_parent() {
 		$response = new WP_REST_Response();
@@ -686,6 +745,8 @@
 	 * Ensure that specifying two sibling properties in _fields causes both to be included.
 	 *
 	 * @ticket 48266
+	 *
+	 * @covers ::rest_filter_response_fields
 	 */
 	public function test_rest_filter_response_fields_include_all_specified_siblings() {
 		$response = new WP_REST_Response();
@@ -716,6 +777,8 @@
 
 	/**
 	 * @ticket 42094
+	 *
+	 * @covers ::rest_is_field_included
 	 */
 	public function test_rest_is_field_included() {
 		$fields = array(
@@ -741,6 +804,8 @@
 	/**
 	 * The get_rest_url function should return a URL consistently terminated with a "/",
 	 * whether the blog is configured with pretty permalink support or not.
+	 *
+	 * @covers ::get_rest_url
 	 */
 	public function test_rest_url_generation() {
 		// In pretty permalinks case, we expect a path of wp-json/ with no query.
@@ -758,6 +823,8 @@
 
 	/**
 	 * @ticket 34299
+	 *
+	 * @covers ::get_rest_url
 	 */
 	public function test_rest_url_scheme() {
 		$_SERVER['SERVER_NAME'] = parse_url( home_url(), PHP_URL_HOST );
@@ -799,6 +866,8 @@
 
 	/**
 	 * @ticket 42452
+	 *
+	 * @covers ::get_rest_url
 	 */
 	public function test_always_prepend_path_with_slash_in_rest_url_filter() {
 		$filter = new MockAction();
@@ -844,6 +913,8 @@
 
 	/**
 	 * @dataProvider jsonp_callback_provider
+	 *
+	 * @covers ::wp_check_jsonp_callback
 	 */
 	public function test_jsonp_callback_check( $callback, $valid ) {
 		$this->assertEquals( $valid, wp_check_jsonp_callback( $callback ) );
@@ -876,6 +947,8 @@
 
 	/**
 	 * @dataProvider rest_date_provider
+	 *
+	 * @covers ::rest_parse_date
 	 */
 	public function test_rest_parse_date( $string, $value ) {
 		$this->assertEquals( $value, rest_parse_date( $string ) );
@@ -908,6 +981,8 @@
 
 	/**
 	 * @dataProvider rest_date_force_utc_provider
+	 *
+	 * @covers ::rest_parse_date
 	 */
 	public function test_rest_parse_date_force_utc( $string, $value ) {
 		$this->assertEquals( $value, rest_parse_date( $string, true ) );
@@ -917,6 +992,9 @@
 		return 'Spy_REST_Server';
 	}
 
+	/**
+	 * @covers ::register_rest_route
+	 */
 	public function test_register_rest_route_without_server() {
 		$GLOBALS['wp_rest_server'] = null;
 		add_filter( 'wp_rest_server_class', array( $this, 'filter_wp_rest_server_class' ) );
@@ -935,6 +1013,9 @@
 		$this->assertEquals( $routes['/test-ns/test'][0]['methods'], array( 'GET' => true ) );
 	}
 
+	/**
+	 *
+	 */
 	function test_rest_preload_api_request_with_method() {
 		$rest_server               = $GLOBALS['wp_rest_server'];
 		$GLOBALS['wp_rest_server'] = null;
@@ -958,6 +1039,8 @@
 
 	/**
 	 * @ticket 40614
+	 *
+	 * @covers ::rest_ensure_request
 	 */
 	function test_rest_ensure_request_accepts_path_string() {
 		$request = rest_ensure_request( '/wp/v2/posts' );
@@ -968,6 +1051,8 @@
 
 	/**
 	 * @dataProvider _dp_rest_parse_embed_param
+	 *
+	 * @covers ::rest_parse_embed_param
 	 */
 	public function test_rest_parse_embed_param( $expected, $embed ) {
 		$this->assertEquals( $expected, rest_parse_embed_param( $embed ) );
@@ -997,6 +1082,8 @@
 	 * @ticket 48819
 	 *
 	 * @dataProvider _dp_rest_filter_response_by_context
+	 *
+	 * @covers ::rest_filter_response_by_context
 	 */
 	public function test_rest_filter_response_by_context( $schema, $data, $expected ) {
 		$this->assertEquals( $expected, rest_filter_response_by_context( $data, $schema, 'view' ) );
@@ -1004,6 +1091,8 @@
 
 	/**
 	 * @ticket 49749
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_register_route_with_invalid_namespace() {
 		$this->setExpectedIncorrectUsage( 'register_rest_route' );
@@ -1025,6 +1114,8 @@
 
 	/**
 	 * @ticket 50075
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_register_route_with_missing_permission_callback_top_level_route() {
 		$this->setExpectedIncorrectUsage( 'register_rest_route' );
@@ -1042,6 +1133,8 @@
 
 	/**
 	 * @ticket 50075
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_register_route_with_missing_permission_callback_single_wrapped_route() {
 		$this->setExpectedIncorrectUsage( 'register_rest_route' );
@@ -1062,6 +1155,8 @@
 
 	/**
 	 * @ticket 50075
+	 *
+	 * @covers ::register_rest_route
 	 */
 	public function test_register_route_with_missing_permission_callback_multiple_wrapped_route() {
 		$this->setExpectedIncorrectUsage( 'register_rest_route' );
@@ -1514,6 +1609,9 @@
 		);
 	}
 
+	/**
+	 * @covers ::rest_ensure_response
+	 */
 	function test_rest_ensure_response_accepts_wp_error_and_returns_wp_error() {
 		$response = rest_ensure_response( new WP_Error() );
 		$this->assertInstanceOf( 'WP_Error', $response );
@@ -1524,6 +1622,8 @@
 	 *
 	 * @param mixed $response      The response passed to rest_ensure_response().
 	 * @param mixed $expected_data The expected data a response should include.
+	 *
+	 * @covers ::rest_ensure_response
 	 */
 	function test_rest_ensure_response_returns_instance_of_wp_rest_response( $response, $expected_data ) {
 		$response_object = rest_ensure_response( $response );
@@ -1550,6 +1650,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_post_non_post() {
 		$this->assertEquals( '', rest_get_route_for_post( 'garbage' ) );
@@ -1557,6 +1659,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_post_invalid_post_type() {
 		register_post_type( 'invalid' );
@@ -1568,6 +1672,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_post_non_rest() {
 		$post = self::factory()->post->create_and_get( array( 'post_type' => 'custom_css' ) );
@@ -1576,6 +1682,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_post_custom_controller() {
 		$post = self::factory()->post->create_and_get( array( 'post_type' => 'wp_block' ) );
@@ -1584,6 +1692,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_post() {
 		$post = self::factory()->post->create_and_get();
@@ -1592,6 +1702,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_media() {
 		$post = self::factory()->attachment->create_and_get();
@@ -1600,6 +1712,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_post
 	 */
 	public function test_rest_get_route_for_post_id() {
 		$post = self::factory()->post->create_and_get();
@@ -1608,6 +1722,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_term
 	 */
 	public function test_rest_get_route_for_term_non_term() {
 		$this->assertEquals( '', rest_get_route_for_term( 'garbage' ) );
@@ -1615,6 +1731,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_term
 	 */
 	public function test_rest_get_route_for_term_invalid_term_type() {
 		register_taxonomy( 'invalid', 'post' );
@@ -1626,6 +1744,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_term
 	 */
 	public function test_rest_get_route_for_term_non_rest() {
 		$term = self::factory()->term->create_and_get( array( 'taxonomy' => 'post_format' ) );
@@ -1634,6 +1754,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_term
 	 */
 	public function test_rest_get_route_for_term() {
 		$term = self::factory()->term->create_and_get();
@@ -1642,6 +1764,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_term
 	 */
 	public function test_rest_get_route_for_category() {
 		$term = self::factory()->category->create_and_get();
@@ -1650,6 +1774,8 @@
 
 	/**
 	 * @ticket 49116
+	 *
+	 * @covers ::rest_get_route_for_term
 	 */
 	public function test_rest_get_route_for_term_id() {
 		$term = self::factory()->term->create_and_get();
@@ -1663,6 +1789,8 @@
 	 *
 	 * @param bool  $expected Expected result of the check.
 	 * @param mixed $value    The value to check.
+	 *
+	 * @covers ::rest_is_object
 	 */
 	public function test_rest_is_object( $expected, $value ) {
 		$is_object = rest_is_object( $value );
@@ -1726,6 +1854,8 @@
 	 *
 	 * @param array $expected Expected sanitized version.
 	 * @param mixed $value    The value to sanitize.
+	 *
+	 * @covers ::rest_sanitize_object
 	 */
 	public function test_rest_sanitize_object( $expected, $value ) {
 		$sanitized = rest_sanitize_object( $value );
@@ -1784,6 +1914,8 @@
 	 *
 	 * @param bool  $expected Expected result of the check.
 	 * @param mixed $value    The value to check.
+	 *
+	 * @covers ::rest_is_array
 	 */
 	public function test_rest_is_array( $expected, $value ) {
 		$is_array = rest_is_array( $value );
@@ -1855,6 +1987,8 @@
 	 *
 	 * @param array $expected Expected sanitized version.
 	 * @param mixed $value    The value to sanitize.
+	 *
+	 * @covers ::rest_sanitize_array
 	 */
 	public function test_rest_sanitize_array( $expected, $value ) {
 		$sanitized = rest_sanitize_array( $value );
@@ -1926,6 +2060,8 @@
 	 * @param string $expected The expected best type.
 	 * @param mixed  $value    The value to test.
 	 * @param array  $types    The list of available types.
+	 *
+	 * @covers ::rest_get_best_type_for_value
 	 */
 	public function test_get_best_type_for_value( $expected, $value, $types ) {
 		$this->assertEquals( $expected, rest_get_best_type_for_value( $value, $types ) );
Index: tests/phpunit/tests/rewrite.php
===================================================================
--- tests/phpunit/tests/rewrite.php	(revision 48816)
+++ tests/phpunit/tests/rewrite.php	(working copy)
@@ -27,6 +27,8 @@
 
 	/**
 	 * @ticket 16840
+	 *
+	 * @covers ::add_rule
 	 */
 	public function test_add_rule() {
 		global $wp_rewrite;
@@ -45,6 +47,8 @@
 
 	/**
 	 * @ticket 16840
+	 *
+	 * @covers ::add_rule
 	 */
 	public function test_add_rule_redirect_array() {
 		global $wp_rewrite;
@@ -69,6 +73,8 @@
 
 	/**
 	 * @ticket 16840
+	 *
+	 * @covers ::add_rule
 	 */
 	public function test_add_rule_top() {
 		global $wp_rewrite;
@@ -85,6 +91,10 @@
 		$this->assertContains( $redirect, $extra_rules_top[ $pattern ] );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 */
 	function test_url_to_postid() {
 
 		$id = self::factory()->post->create();
@@ -94,6 +104,11 @@
 		$this->assertEquals( $id, url_to_postid( get_permalink( $id ) ) );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 * @covers ::set_url_scheme
+	 */
 	function test_url_to_postid_set_url_scheme_https_to_http() {
 		$post_id   = self::factory()->post->create();
 		$permalink = get_permalink( $post_id );
@@ -104,6 +119,11 @@
 		$this->assertEquals( $post_id, url_to_postid( set_url_scheme( $permalink, 'https' ) ) );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 * @covers ::set_url_scheme
+	 */
 	function test_url_to_postid_set_url_scheme_http_to_https() {
 		$_SERVER['HTTPS'] = 'on';
 
@@ -123,6 +143,8 @@
 	 * @ticket 35531
 	 * @group multisite
 	 * @group ms-required
+	 *
+	 * @covers ::url_to_postid
 	 */
 	function test_url_to_postid_of_http_site_when_current_site_uses_https() {
 		$_SERVER['HTTPS'] = 'on';
@@ -170,6 +192,10 @@
 		return $url;
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 */
 	function test_url_to_postid_custom_post_type() {
 		delete_option( 'rewrite_rules' );
 
@@ -182,6 +208,10 @@
 		_unregister_post_type( $post_type );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 */
 	function test_url_to_postid_hierarchical() {
 
 		$parent_id = self::factory()->post->create(
@@ -202,6 +232,10 @@
 		$this->assertEquals( $child_id, url_to_postid( get_permalink( $child_id ) ) );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 */
 	function test_url_to_postid_hierarchical_with_matching_leaves() {
 
 		$parent_id       = self::factory()->post->create(
@@ -245,6 +279,10 @@
 		$this->assertEquals( $grandchild_id_2, url_to_postid( get_permalink( $grandchild_id_2 ) ) );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 */
 	function test_url_to_postid_home_has_path() {
 
 		update_option( 'home', home_url( '/example/' ) );
@@ -270,6 +308,8 @@
 
 	/**
 	 * @ticket 30438
+	 *
+	 * @covers ::home_url
 	 */
 	function test_parse_request_home_path() {
 		$home_url = home_url( '/path/' );
@@ -290,6 +330,8 @@
 
 	/**
 	 * @ticket 30438
+	 *
+	 * @covers ::home_url
 	 */
 	function test_parse_request_home_path_with_regex_character() {
 		$home_url       = home_url( '/ma.ch/' );
@@ -327,6 +369,8 @@
 
 	/**
 	 * @ticket 30018
+	 *
+	 * @covers ::home_url
 	 */
 	function test_parse_request_home_path_non_public_type() {
 		register_post_type( 'foo', array( 'public' => false ) );
@@ -340,6 +384,10 @@
 		$this->assertEquals( array(), $GLOBALS['wp']->query_vars );
 	}
 
+	/**
+	 *
+	 * @covers ::url_to_postid
+	 */
 	function test_url_to_postid_dupe_path() {
 		update_option( 'home', home_url( '/example/' ) );
 
@@ -359,6 +407,8 @@
 
 	/**
 	 * Reveals bug introduced in WP 3.0
+	 *
+	 * @covers ::url_to_postid
 	 */
 	function test_url_to_postid_home_url_collision() {
 		update_option( 'home', home_url( '/example' ) );
@@ -380,6 +430,8 @@
 	 * Reveals bug introduced in WP 3.0
 	 *
 	 * @group ms-required
+	 *
+	 * @covers ::network_home_url
 	 */
 	function test_url_to_postid_ms_home_url_collision() {
 		$blog_id = self::factory()->blog->create( array( 'path' => '/example' ) );
@@ -401,6 +453,8 @@
 
 	/**
 	 * @ticket 21970
+	 *
+	 * @covers ::url_to_postid
 	 */
 	function test_url_to_postid_with_post_slug_that_clashes_with_a_trashed_page() {
 		$this->set_permalink_structure( '/%postname%/' );
@@ -418,6 +472,8 @@
 
 	/**
 	 * @ticket 34971
+	 *
+	 * @covers ::url_to_postid
 	 */
 	function test_url_to_postid_static_front_page() {
 		$post_id = self::factory()->post->create( array( 'post_type' => 'page' ) );
@@ -438,6 +494,8 @@
 
 	/**
 	 * @ticket 39373
+	 *
+	 * @covers ::url_to_postid
 	 */
 	public function test_url_to_postid_should_bail_when_host_does_not_match() {
 		$this->set_permalink_structure( '/%postname%/' );
@@ -452,6 +510,8 @@
 
 	/**
 	 * @ticket 21970
+	 *
+	 * @covers ::get_permalink
 	 */
 	function test_parse_request_with_post_slug_that_clashes_with_a_trashed_page() {
 		$this->set_permalink_structure( '/%postname%/' );
@@ -472,6 +532,8 @@
 
 	/**
 	 * @ticket 29107
+	 *
+	 * @covers ::flush_rules
 	 */
 	public function test_flush_rules_does_not_delete_option() {
 		$this->set_permalink_structure( '' );
Index: tests/phpunit/tests/shortcode.php
===================================================================
--- tests/phpunit/tests/shortcode.php	(revision 48816)
+++ tests/phpunit/tests/shortcode.php	(working copy)
@@ -95,6 +95,10 @@
 		return $out;
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_noatts() {
 		do_shortcode( '[test-shortcode-tag /]' );
 		$this->assertEquals( '', $this->atts );
@@ -101,6 +105,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_one_att() {
 		do_shortcode( '[test-shortcode-tag foo="asdf" /]' );
 		$this->assertEquals( array( 'foo' => 'asdf' ), $this->atts );
@@ -107,6 +115,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_not_a_tag() {
 		$out = do_shortcode( '[not-a-shortcode-tag]' );
 		$this->assertEquals( '[not-a-shortcode-tag]', $out );
@@ -114,6 +126,8 @@
 
 	/**
 	 * @ticket 17657
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_tag_hyphen_not_tag() {
 		$out = do_shortcode( '[dumptag-notreal]' );
@@ -120,11 +134,19 @@
 		$this->assertEquals( '[dumptag-notreal]', $out );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_tag_underscore_not_tag() {
 		$out = do_shortcode( '[dumptag_notreal]' );
 		$this->assertEquals( '[dumptag_notreal]', $out );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_tag_not_tag() {
 		$out = do_shortcode( '[dumptagnotreal]' );
 		$this->assertEquals( '[dumptagnotreal]', $out );
@@ -132,6 +154,8 @@
 
 	/**
 	 * @ticket 17657
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_tag_hyphen() {
 		$this->assertEquals( '_shortcode_hyphen', do_shortcode( '[hyphen]' ) );
@@ -143,6 +167,8 @@
 
 	/**
 	 * @ticket 9405
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_attr_hyphen() {
 		do_shortcode( '[test-shortcode-tag foo="foo" foo-bar="foo-bar" foo-bar-="foo-bar-" -foo-bar="-foo-bar" -foo-bar-="-foo-bar-" foo-bar-baz="foo-bar-baz" -foo-bar-baz="-foo-bar-baz" foo--bar="foo--bar" /]' );
@@ -159,6 +185,10 @@
 		$this->assertEquals( $expected_attrs, $this->atts );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_two_atts() {
 		do_shortcode( '[test-shortcode-tag foo="asdf" bar="bing" /]' );
 		$this->assertEquals(
@@ -171,6 +201,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_noatts_enclosing() {
 		do_shortcode( '[test-shortcode-tag]content[/test-shortcode-tag]' );
 		$this->assertEquals( '', $this->atts );
@@ -178,6 +212,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_one_att_enclosing() {
 		do_shortcode( '[test-shortcode-tag foo="bar"]content[/test-shortcode-tag]' );
 		$this->assertEquals( array( 'foo' => 'bar' ), $this->atts );
@@ -185,6 +223,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_two_atts_enclosing() {
 		do_shortcode( '[test-shortcode-tag foo="bar" baz="bing"]content[/test-shortcode-tag]' );
 		$this->assertEquals(
@@ -198,6 +240,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_unclosed() {
 		$out = do_shortcode( '[test-shortcode-tag]' );
 		$this->assertEquals( '', $out );
@@ -205,6 +251,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_positional_atts_num() {
 		$out = do_shortcode( '[test-shortcode-tag 123]' );
 		$this->assertEquals( '', $out );
@@ -212,6 +262,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_positional_atts_url() {
 		$out = do_shortcode( '[test-shortcode-tag http://www.youtube.com/watch?v=eBGIQ7ZuuiU]' );
 		$this->assertEquals( '', $out );
@@ -219,6 +273,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_positional_atts_quotes() {
 		$out = do_shortcode( '[test-shortcode-tag "something in quotes" "something else"]' );
 		$this->assertEquals( '', $out );
@@ -232,6 +290,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_positional_atts_mixed() {
 		$out = do_shortcode( '[test-shortcode-tag 123 https://wordpress.org/ 0 "foo" bar]' );
 		$this->assertEquals( '', $out );
@@ -248,6 +310,10 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_positional_and_named_atts() {
 		$out = do_shortcode( '[test-shortcode-tag 123 url=https://wordpress.org/ foo bar="baz"]' );
 		$this->assertEquals( '', $out );
@@ -263,11 +329,19 @@
 		$this->assertEquals( 'test-shortcode-tag', $this->tagname );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_footag_default() {
 		$out = do_shortcode( '[footag]' );
 		$this->assertEquals( 'foo = ', $out );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_footag_val() {
 		$val = rand_str();
 		$out = do_shortcode( '[footag foo="' . $val . '"]' );
@@ -274,6 +348,10 @@
 		$this->assertEquals( 'foo = ' . $val, $out );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_nested_tags() {
 		$out      = do_shortcode( '[baztag][dumptag abc="foo" def=123 https://wordpress.org/][/baztag]' );
 		$expected = "content = abc = foo\ndef = 123\n0 = https://wordpress.org\n";
@@ -282,6 +360,8 @@
 
 	/**
 	 * @ticket 6518
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_tag_escaped() {
 		$out = do_shortcode( '[[footag]] [[bartag foo="bar"]]' );
@@ -298,6 +378,10 @@
 		$this->assertEquals( '[[footag]] [[bartag foo="bar"]]', $out );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_tag_not_escaped() {
 		// These have square brackets on either end but aren't actually escaped.
 		$out = do_shortcode( '[[footag] [bartag foo="bar"]]' );
@@ -316,6 +400,10 @@
 		$this->assertEquals( '[[foo =  foo = bar]]', $out );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_mixed_tags() {
 		$in       = <<<EOF
 So this is a post with [footag foo="some stuff"] and a bunch of tags.
@@ -355,6 +443,8 @@
 
 	/**
 	 * @ticket 6562
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_utf8_whitespace_1() {
 		// NO-BREAK SPACE: U+00A0.
@@ -371,6 +461,8 @@
 
 	/**
 	 * @ticket 6562
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_utf8_whitespace_2() {
 		// ZERO WIDTH SPACE: U+200B.
@@ -387,6 +479,8 @@
 
 	/**
 	 * @ticket 14050
+	 *
+	 * @covers ::shortcode_unautop
 	 */
 	function test_shortcode_unautop() {
 		// A blank line is added at the end, so test with it already there.
@@ -416,6 +510,8 @@
 	 *
 	 * @param string $expected  Expected output.
 	 * @param string $content   Content to run strip_shortcodes() on.
+	 *
+	 * @covers ::strip_shortcodes
 	 */
 	function test_strip_shortcodes( $expected, $content ) {
 		$this->assertEquals( $expected, strip_shortcodes( $content ) );
@@ -458,6 +554,10 @@
 		return $out;
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_shortcode_atts_filter_passes_original_arguments() {
 		add_filter( 'shortcode_atts_bartag', array( $this, '_filter_atts' ), 10, 3 );
 
@@ -481,6 +581,10 @@
 		remove_filter( 'shortcode_atts_bartag', array( $this, '_filter_atts' ), 10, 3 );
 	}
 
+	/**
+	 *
+	 * @covers ::do_shortcode
+	 */
 	function test_shortcode_atts_filtering() {
 		add_filter( 'shortcode_atts_bartag', array( $this, '_filter_atts2' ), 10, 3 );
 
@@ -498,6 +602,8 @@
 	 * Check that shortcode_unautop() will always recognize spaces around shortcodes.
 	 *
 	 * @ticket 22692
+	 *
+	 * @covers ::shortcode_unautop
 	 */
 	function test_spaces_around_shortcodes() {
 		$nbsp = "\xC2\xA0";
@@ -520,6 +626,8 @@
 	 * Check for bugginess using normal input with latest patches.
 	 *
 	 * @dataProvider data_escaping
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_escaping( $input, $output ) {
 		return $this->assertEquals( $output, do_shortcode( $input ) );
@@ -598,6 +706,8 @@
 	 * Check for bugginess using normal input with latest patches.
 	 *
 	 * @dataProvider data_escaping2
+	 *
+	 * @covers ::strip_shortcodes
 	 */
 	function test_escaping2( $input, $output ) {
 		return $this->assertEquals( $output, strip_shortcodes( $input ) );
@@ -638,6 +748,8 @@
 
 	/**
 	 * @ticket 26343
+	 *
+	 * @covers ::has_shortcode
 	 */
 	function test_has_shortcode() {
 		$content = 'This is a blob with [gallery] in it';
@@ -654,6 +766,8 @@
 	 *
 	 * @dataProvider data_registration_bad
 	 * @expectedIncorrectUsage add_shortcode
+	 *
+	 * @covers ::shortcode_exists
 	 */
 	function test_registration_bad( $input, $expected ) {
 		return $this->sub_registration( $input, $expected );
@@ -663,6 +777,8 @@
 	 * Make sure valid shortcode names are allowed.
 	 *
 	 * @dataProvider data_registration_good
+	 *
+	 * @covers ::shortcode_exists
 	 */
 	function test_registration_good( $input, $expected ) {
 		return $this->sub_registration( $input, $expected );
@@ -732,6 +848,8 @@
 	 * Automated performance testing of the main regex.
 	 *
 	 * @dataProvider data_whole_posts
+	 *
+	 * @covers ::get_shortcode_regex
 	 */
 	function test_pcre_performance( $input ) {
 		$regex  = '/' . get_shortcode_regex() . '/';
@@ -744,6 +862,10 @@
 		return data_whole_posts();
 	}
 
+	/**
+ 	 *
+	 * @covers ::get_shortcode_regex
+ 	 */
 	function test_php_and_js_shortcode_attribute_regexes_match() {
 
 		$file    = file_get_contents( ABSPATH . WPINC . '/js/shortcode.js' );
@@ -761,6 +883,8 @@
 	 * @ticket 34939
 	 *
 	 * Test the (not recommended) [shortcode=XXX] format
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_unnamed_attribute() {
 		$out      = do_shortcode( '[dumptag=https://wordpress.org/]' );
@@ -770,6 +894,8 @@
 
 	/**
 	 * @ticket 36306
+	 *
+	 * @covers ::the_content
 	 */
 	function test_smilies_arent_converted() {
 		$out      = apply_filters( 'the_content', '[img alt="Hello :-) World"]' );
@@ -779,6 +905,8 @@
 
 	/**
 	 * @ticket 37906
+	 *
+	 * @covers ::do_shortcode
 	 */
 	public function test_pre_do_shortcode_tag() {
 		// Does nothing if no filters are set up.
@@ -849,6 +977,8 @@
 
 	/**
 	 * @ticket 32790
+	 *
+	 * @covers ::do_shortcode
 	 */
 	public function test_do_shortcode_tag_filter() {
 		// Does nothing if no filters are set up.
@@ -921,6 +1051,8 @@
 	 * @ticket 37304
 	 *
 	 * Test 'value' syntax for empty attributes
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_empty_single_quote_attribute() {
 		$out = do_shortcode( '[test-shortcode-tag a="foo" b=\'bar\' c=baz foo \'bar\' "baz" ]test empty atts[/test-shortcode-tag]' );
@@ -939,6 +1071,8 @@
 
 	/**
 	 * @ticket 37304
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_positional_atts_single_quotes() {
 		$out = do_shortcode( "[test-shortcode-tag 'something in quotes' 'something else']" );
@@ -955,6 +1089,8 @@
 
 	/**
 	 * @ticket 37304
+	 *
+	 * @covers ::do_shortcode
 	 */
 	function test_positional_atts_mixed_quotes() {
 		$out = do_shortcode( "[test-shortcode-tag 'something in quotes' \"something else\" 123 foo bar='baz' example=\"test\" ]" );
Index: tests/phpunit/tests/site-health.php
===================================================================
--- tests/phpunit/tests/site-health.php	(revision 48816)
+++ tests/phpunit/tests/site-health.php	(working copy)
@@ -13,6 +13,8 @@
 	 * Ensure Site Health reports correctly cron job reports.
 	 *
 	 * @ticket 47223
+	 *
+	 * @covers WP_Site_Health::get_test_scheduled_events
 	 */
 	function test_cron_health_checks_critical() {
 		$wp_site_health = new WP_Site_Health();
@@ -33,6 +35,8 @@
 	 *
 	 * @dataProvider data_cron_health_checks
 	 * @ticket 47223
+	 *
+	 * @covers WP_Site_Health::get_test_scheduled_events
 	 */
 	function test_cron_health_checks( $times, $expected_status, $expected_label, $expected_late, $expected_missed ) {
 		$wp_site_health = new WP_Site_Health();
Index: tests/phpunit/tests/taxonomy.php
===================================================================
--- tests/phpunit/tests/taxonomy.php	(revision 48816)
+++ tests/phpunit/tests/taxonomy.php	(working copy)
@@ -4,10 +4,19 @@
  * @group taxonomy
  */
 class Tests_Taxonomy extends WP_UnitTestCase {
+
+	/**
+	 *
+	 * @covers ::get_object_taxonomies
+	 */
 	function test_get_post_taxonomies() {
 		$this->assertEquals( array( 'category', 'post_tag', 'post_format' ), get_object_taxonomies( 'post' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_object_taxonomies
+	 */
 	function test_get_link_taxonomies() {
 		$this->assertEquals( array( 'link_category' ), get_object_taxonomies( 'link' ) );
 	}
@@ -14,6 +23,8 @@
 
 	/**
 	 * @ticket 5417
+	 *
+	 * @covers ::get_object_taxonomies
 	 */
 	function test_get_unknown_taxonomies() {
 		// Taxonomies for an unknown object type.
@@ -23,6 +34,10 @@
 		$this->assertEquals( array(), get_object_taxonomies( null ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_object_taxonomies
+	 */
 	function test_get_post_taxonomy() {
 		foreach ( get_object_taxonomies( 'post' ) as $taxonomy ) {
 			$tax = get_taxonomy( $taxonomy );
@@ -33,6 +48,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::get_the_taxonomies
+	 */
 	function test_get_the_taxonomies() {
 		$post_id = self::factory()->post->create();
 
@@ -51,6 +70,8 @@
 
 	/**
 	 * @ticket 27238
+	 *
+	 * @covers ::get_the_taxonomies
 	 */
 	public function test_get_the_taxonomies_term_template() {
 		$post_id = self::factory()->post->create();
@@ -63,6 +84,10 @@
 		$this->assertEquals( 'Categories: <span class="foo"><a href="' . $link . '">Uncategorized</a></span>.', $taxes['category'] );
 	}
 
+	/**
+	 *
+	 * @covers ::the_taxonomies
+	 */
 	function test_the_taxonomies() {
 		$post_id = self::factory()->post->create();
 
@@ -77,6 +102,8 @@
 
 	/**
 	 * @ticket 27238
+	 *
+	 * @covers ::get_category_link
 	 */
 	function test_the_taxonomies_term_template() {
 		$post_id = self::factory()->post->create();
@@ -105,6 +132,10 @@
 		$this->assertEquals( 'Categories: <span class="foo"><a href="' . $link . '">Uncategorized</a></span>.', $output );
 	}
 
+	/**
+	 *
+	 * @covers ::create_initial_taxonomies
+	 */
 	function test_get_link_taxonomy() {
 		foreach ( get_object_taxonomies( 'link' ) as $taxonomy ) {
 			$tax = get_taxonomy( $taxonomy );
@@ -115,6 +146,11 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::create_initial_taxonomies
+	 * @covers ::taxonomy_exists
+	 */
 	function test_taxonomy_exists_known() {
 		$this->assertTrue( taxonomy_exists( 'category' ) );
 		$this->assertTrue( taxonomy_exists( 'post_tag' ) );
@@ -121,6 +157,11 @@
 		$this->assertTrue( taxonomy_exists( 'link_category' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::create_initial_taxonomies
+	 * @covers ::taxonomy_exists
+	 */
 	function test_taxonomy_exists_unknown() {
 		$this->assertFalse( taxonomy_exists( rand_str() ) );
 		$this->assertFalse( taxonomy_exists( '' ) );
@@ -128,6 +169,11 @@
 		$this->assertFalse( taxonomy_exists( null ) );
 	}
 
+	/**
+	 *
+	 * @covers ::create_initial_taxonomies
+	 * @covers ::is_taxonomy_hierarchical
+	 */
 	function test_is_taxonomy_hierarchical() {
 		$this->assertTrue( is_taxonomy_hierarchical( 'category' ) );
 		$this->assertFalse( is_taxonomy_hierarchical( 'post_tag' ) );
@@ -134,6 +180,11 @@
 		$this->assertFalse( is_taxonomy_hierarchical( 'link_category' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::create_initial_taxonomies
+	 * @covers ::is_taxonomy_hierarchical
+	 */
 	function test_is_taxonomy_hierarchical_unknown() {
 		$this->assertFalse( is_taxonomy_hierarchical( rand_str() ) );
 		$this->assertFalse( is_taxonomy_hierarchical( '' ) );
@@ -141,6 +192,10 @@
 		$this->assertFalse( is_taxonomy_hierarchical( null ) );
 	}
 
+	/**
+	 *
+	 * @covers ::register_taxonomy
+	 */
 	function test_register_taxonomy() {
 
 		// Make up a new taxonomy name, and ensure it's unused.
@@ -155,6 +210,10 @@
 		unset( $GLOBALS['wp_taxonomies'][ $tax ] );
 	}
 
+	/**
+	 *
+	 * @covers ::register_taxonomy
+	 */
 	function test_register_hierarchical_taxonomy() {
 
 		// Make up a new taxonomy name, and ensure it's unused.
@@ -171,6 +230,8 @@
 
 	/**
 	 * @ticket 48558
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	function test_register_taxonomy_return_value() {
 		$this->assertInstanceOf( 'WP_Taxonomy', register_taxonomy( 'foo', 'post' ) );
@@ -180,6 +241,8 @@
 	 * @ticket 21593
 	 *
 	 * @expectedIncorrectUsage register_taxonomy
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	function test_register_taxonomy_with_too_long_name() {
 		$this->assertInstanceOf( 'WP_Error', register_taxonomy( 'abcdefghijklmnopqrstuvwxyz0123456789', 'post', array() ) );
@@ -189,6 +252,8 @@
 	 * @ticket 31135
 	 *
 	 * @expectedIncorrectUsage register_taxonomy
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	function test_register_taxonomy_with_empty_name() {
 		$this->assertInstanceOf( 'WP_Error', register_taxonomy( '', 'post', array() ) );
@@ -196,6 +261,8 @@
 
 	/**
 	 * @ticket 26948
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_register_taxonomy_show_in_quick_edit_should_default_to_value_of_show_ui() {
 		register_taxonomy(
@@ -223,6 +290,8 @@
 
 	/**
 	 * @ticket 11058
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	function test_registering_taxonomies_to_object_types() {
 		// Create a taxonomy to test with.
@@ -272,6 +341,8 @@
 
 	/**
 	 * @ticket 32590
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_register_taxonomy_for_post_type_for_taxonomy_with_no_object_type_should_filter_out_empty_object_types() {
 		register_taxonomy( 'wptests_tax', '' );
@@ -282,6 +353,10 @@
 		$this->assertEqualSets( $expected, $tax->object_type );
 	}
 
+	/**
+	 *
+	 * @covers ::get_objects_in_term
+	 */
 	public function test_get_objects_in_term_should_return_invalid_taxonomy_error() {
 		$terms = get_objects_in_term( 1, 'invalid_taxonomy' );
 		$this->assertInstanceOf( 'WP_Error', $terms );
@@ -288,10 +363,18 @@
 		$this->assertEquals( 'invalid_taxonomy', $terms->get_error_code() );
 	}
 
+	/**
+	 *
+	 * @covers ::get_objects_in_term
+	 */
 	public function test_get_objects_in_term_should_return_empty_array() {
 		$this->assertEquals( array(), get_objects_in_term( 1, 'post_tag' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_objects_in_term
+	 */
 	public function test_get_objects_in_term_should_return_objects_ids() {
 		$tag_id              = self::factory()->tag->create();
 		$cat_id              = self::factory()->category->create();
@@ -324,6 +407,8 @@
 
 	/**
 	 * @ticket 37094
+	 *
+	 * @covers ::wp_set_object_terms
 	 */
 	public function test_term_assignment_should_invalidate_get_objects_in_term_cache() {
 		register_taxonomy( 'wptests_tax', 'post' );
@@ -349,6 +434,8 @@
 
 	/**
 	 * @ticket 37094
+	 *
+	 * @covers ::wp_delete_term
 	 */
 	public function test_term_deletion_should_invalidate_get_objects_in_term_cache() {
 		register_taxonomy( 'wptests_tax', 'post' );
@@ -374,6 +461,8 @@
 
 	/**
 	 * @ticket 37094
+	 *
+	 * @covers ::wp_delete_term
 	 */
 	public function test_post_deletion_should_invalidate_get_objects_in_term_cache() {
 		register_taxonomy( 'wptests_tax', 'post' );
@@ -399,6 +488,8 @@
 
 	/**
 	 * @ticket 25706
+	 *
+	 * @covers ::in_category
 	 */
 	function test_in_category() {
 		$post = self::factory()->post->create_and_get();
@@ -414,6 +505,10 @@
 		$this->assertTrue( in_category( $term['term_id'], $post ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_insert_category
+	 */
 	function test_insert_category_create() {
 		$cat = array(
 			'cat_ID'   => 0,
@@ -423,6 +518,10 @@
 		$this->assertTrue( is_numeric( wp_insert_category( $cat, true ) ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_insert_category
+	 */
 	function test_insert_category_update() {
 		$cat = array(
 			'cat_ID'   => 1,
@@ -432,6 +531,10 @@
 		$this->assertEquals( 1, wp_insert_category( $cat ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_insert_category
+	 */
 	function test_insert_category_force_error_handle() {
 		$cat = array(
 			'cat_ID'   => 0,
@@ -441,6 +544,10 @@
 		$this->assertTrue( is_a( wp_insert_category( $cat, true ), 'WP_Error' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_insert_category
+	 */
 	function test_insert_category_force_error_no_handle() {
 		$cat = array(
 			'cat_ID'   => 0,
@@ -450,6 +557,10 @@
 		$this->assertEquals( 0, wp_insert_category( $cat, false ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_ancestors
+	 */
 	public function test_get_ancestors_taxonomy_non_hierarchical() {
 		register_taxonomy( 'wptests_tax', 'post' );
 		$t = self::factory()->term->create(
@@ -462,6 +573,10 @@
 		_unregister_taxonomy( 'wptests_tax' );
 	}
 
+	/**
+	 *
+	 * @covers ::get_ancestors
+	 */
 	public function test_get_ancestors_taxonomy() {
 		register_taxonomy(
 			'wptests_tax',
@@ -509,6 +624,10 @@
 		$this->assertEqualSets( array(), get_ancestors( $p, 'wptests_tax' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_ancestors
+	 */
 	public function test_get_ancestors_post_type() {
 		register_post_type(
 			'wptests_pt',
@@ -546,6 +665,8 @@
 
 	/**
 	 * @ticket 15029
+	 *
+	 * @covers ::get_ancestors
 	 */
 	public function test_get_ancestors_taxonomy_post_type_conflict_resource_type_taxonomy() {
 		register_post_type(
@@ -593,6 +714,8 @@
 
 	/**
 	 * @ticket 21949
+	 *
+	 * @covers ::is_tax
 	 */
 	public function test_nonpublicly_queryable_taxonomy_should_not_be_queryable_using_taxname_query_var() {
 		register_taxonomy(
@@ -619,6 +742,8 @@
 
 	/**
 	 * @ticket 21949
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_it_should_be_possible_to_register_a_query_var_that_matches_the_name_of_a_nonpublicly_queryable_taxonomy() {
 		global $wp;
@@ -660,6 +785,8 @@
 
 	/**
 	 * @ticket 21949
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_nonpublicly_queryable_taxonomy_should_not_be_queryable_using_taxonomy_and_term_vars() {
 		register_taxonomy(
@@ -686,6 +813,8 @@
 
 	/**
 	 * @ticket 34491
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_public_taxonomy_should_be_publicly_queryable() {
 		register_taxonomy(
@@ -714,6 +843,8 @@
 
 	/**
 	 * @ticket 34491
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_private_taxonomy_should_not_be_publicly_queryable() {
 		register_taxonomy(
@@ -742,6 +873,8 @@
 
 	/**
 	 * @ticket 34491
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_private_taxonomy_should_be_overridden_by_publicly_queryable() {
 		register_taxonomy(
@@ -771,6 +904,8 @@
 
 	/**
 	 * @ticket 35089
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	public function test_query_var_should_be_forced_to_false_for_non_public_taxonomy() {
 		register_taxonomy(
@@ -788,6 +923,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_unknown_taxonomy() {
 		$this->assertWPError( unregister_taxonomy( 'foo' ) );
@@ -795,6 +932,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_twice() {
 		register_taxonomy( 'foo', 'post' );
@@ -804,6 +943,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_disallow_builtin_taxonomy() {
 		$this->assertWPError( unregister_taxonomy( 'post_tag' ) );
@@ -812,6 +953,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_removes_query_vars() {
 		global $wp;
@@ -825,6 +968,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_removes_permastruct() {
 		$this->set_permalink_structure( '/%postname%' );
@@ -847,6 +992,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_removes_rewrite_rules() {
 		$this->set_permalink_structure( '/%postname%' );
@@ -867,6 +1014,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_removes_taxonomy_from_global() {
 		global $wp_taxonomies;
@@ -884,6 +1033,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_unregister_taxonomy_removes_meta_box_callback() {
 		global $wp_filter;
@@ -898,6 +1049,8 @@
 
 	/**
 	 * @ticket 35227
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_taxonomy_does_not_exist_after_unregister_taxonomy() {
 		register_taxonomy( 'foo', 'post' );
@@ -908,6 +1061,8 @@
 
 	/**
 	 * @ticket 39308
+	 *
+	 * @covers ::unregister_taxonomy
 	 */
 	public function test_taxonomy_name_property_should_not_get_overridden_by_passed_args() {
 		register_taxonomy( 'foo', 'post', array( 'name' => 'bar' ) );
@@ -920,6 +1075,8 @@
 
 	/**
 	 * @ticket 36514
+	 *
+	 * @covers ::edit_post
 	 */
 	public function test_edit_post_hierarchical_taxonomy() {
 
@@ -970,6 +1127,8 @@
 	 * Test default term for custom taxonomy.
 	 *
 	 * @ticket 43517
+	 *
+	 * @covers ::register_taxonomy
 	 */
 	function test_default_term_for_custom_taxonomy() {
 
Index: tests/phpunit/tests/template.php
===================================================================
--- tests/phpunit/tests/template.php	(revision 48816)
+++ tests/phpunit/tests/template.php	(working copy)
@@ -89,7 +89,10 @@
 		parent::tearDown();
 	}
 
-
+	/**
+	 *
+	 * @covers ::get_404_template
+	 */
 	public function test_404_template_hierarchy() {
 		$url = add_query_arg(
 			array(
@@ -106,6 +109,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_author_template
+	 */
 	public function test_author_template_hierarchy() {
 		$author = self::factory()->user->create_and_get(
 			array(
@@ -124,6 +131,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_category_template
+	 */
 	public function test_category_template_hierarchy() {
 		$term = self::factory()->term->create_and_get(
 			array(
@@ -144,6 +155,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_tag_template
+	 */
 	public function test_tag_template_hierarchy() {
 		$term = self::factory()->term->create_and_get(
 			array(
@@ -164,6 +179,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_taxonomy_template
+	 */
 	public function test_taxonomy_template_hierarchy() {
 		$term = self::factory()->term->create_and_get(
 			array(
@@ -184,6 +203,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_date_template
+	 */
 	public function test_date_template_hierarchy_for_year() {
 		$this->assertTemplateHierarchy(
 			get_year_link( 1984 ),
@@ -194,6 +217,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_date_template
+	 */
 	public function test_date_template_hierarchy_for_month() {
 		$this->assertTemplateHierarchy(
 			get_month_link( 1984, 2 ),
@@ -204,6 +231,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_date_template
+	 */
 	public function test_date_template_hierarchy_for_day() {
 		$this->assertTemplateHierarchy(
 			get_day_link( 1984, 2, 25 ),
@@ -214,6 +245,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_search_template
+	 */
 	public function test_search_template_hierarchy() {
 		$url = add_query_arg(
 			array(
@@ -230,6 +265,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_front_page_template
+	 */
 	public function test_front_page_template_hierarchy_with_posts_on_front() {
 		$this->assertEquals( 'posts', get_option( 'show_on_front' ) );
 		$this->assertTemplateHierarchy(
@@ -242,6 +281,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_front_page_template
+	 */
 	public function test_front_page_template_hierarchy_with_page_on_front() {
 		update_option( 'show_on_front', 'page' );
 		update_option( 'page_on_front', self::$page_on_front->ID );
@@ -260,6 +303,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_home_template
+	 */
 	public function test_home_template_hierarchy_with_page_on_front() {
 		update_option( 'show_on_front', 'page' );
 		update_option( 'page_on_front', self::$page_on_front->ID );
@@ -274,6 +321,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_page_template
+	 */
 	public function test_page_template_hierarchy() {
 		$this->assertTemplateHierarchy(
 			get_permalink( self::$page ),
@@ -291,6 +342,8 @@
 	/**
 	 * @ticket 44005
 	 * @group privacy
+	 *
+	 * @covers ::get_privacy_policy_template
 	 */
 	public function test_privacy_template_hierarchy() {
 		update_option( 'wp_page_for_privacy_policy', self::$page_for_privacy_policy->ID );
@@ -309,6 +362,8 @@
 
 	/**
 	 * @ticket 18375
+	 *
+	 * @covers ::get_single_template
 	 */
 	public function test_single_template_hierarchy_for_post() {
 		$this->assertTemplateHierarchy(
@@ -324,6 +379,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_single_template
+	 */
 	public function test_single_template_hierarchy_for_custom_post_type() {
 		$cpt = self::factory()->post->create_and_get(
 			array(
@@ -346,6 +405,8 @@
 
 	/**
 	 * @ticket 18375
+	 *
+	 * @covers ::get_single_template
 	 */
 	public function test_single_template_hierarchy_for_custom_post_type_with_template() {
 		$cpt = self::factory()->post->create_and_get(
@@ -369,6 +430,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_attachment_template
+	 */
 	public function test_attachment_template_hierarchy() {
 		$attachment = self::factory()->attachment->create_and_get(
 			array(
@@ -395,6 +460,8 @@
 
 	/**
 	 * @ticket 18375
+	 *
+	 * @covers ::get_attachment_template
 	 */
 	public function test_attachment_template_hierarchy_with_template() {
 		$attachment = self::factory()->attachment->create_and_get(
@@ -423,6 +490,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_embed_template
+	 */
 	public function test_embed_template_hierarchy_for_post() {
 		$this->assertTemplateHierarchy(
 			get_post_embed_url( self::$post ),
@@ -440,6 +511,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::get_embed_template
+	 */
 	public function test_embed_template_hierarchy_for_page() {
 		$this->assertTemplateHierarchy(
 			get_post_embed_url( self::$page ),
Index: tests/phpunit/tests/term.php
===================================================================
--- tests/phpunit/tests/term.php	(revision 48816)
+++ tests/phpunit/tests/term.php	(working copy)
@@ -13,6 +13,8 @@
 
 	/**
 	 * @ticket 29911
+	 *
+	 * @covers ::wp_delete_term
 	 */
 	public function test_wp_delete_term_should_invalidate_cache_for_child_terms() {
 		register_taxonomy(
@@ -48,6 +50,8 @@
 
 	/**
 	 * @ticket 5381
+	 *
+	 * @covers ::wp_insert_term
 	 */
 	function test_is_term_type() {
 		// Insert a term.
@@ -63,6 +67,8 @@
 
 	/**
 	 * @ticket 15919
+	 *
+	 * @covers ::wp_count_terms
 	 */
 	function test_wp_count_terms() {
 		$count = wp_count_terms( 'category', array( 'hide_empty' => true ) );
@@ -72,6 +78,9 @@
 
 	/**
 	 * @ticket 15475
+	 *
+	 * @covers ::wp_add_object_terms
+	 * @covers ::wp_remove_object_terms
 	 */
 	function test_wp_add_remove_object_terms() {
 		$posts = self::$post_ids;
@@ -103,6 +112,8 @@
 
 	/**
 	 * @group category.php
+	 *
+	 * @covers ::wp_insert_term
 	 */
 	function test_term_is_ancestor_of() {
 		$term  = rand_str();
@@ -123,6 +134,11 @@
 		wp_delete_term( $t2['term_id'], 'category' );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_insert_category
+	 * @covers ::wp_delete_category
+	 */
 	function test_wp_insert_delete_category() {
 		$term = rand_str();
 		$this->assertNull( category_exists( $term ) );
@@ -148,6 +164,8 @@
 
 	/**
 	 * @ticket 16550
+	 *
+	 * @covers ::wp_set_post_categories
 	 */
 	function test_wp_set_post_categories() {
 		$post_id = self::$post_ids[0];
@@ -187,6 +205,8 @@
 
 	/**
 	 * @ticket 43516
+	 *
+	 * @covers ::wp_set_post_categories
 	 */
 	function test_wp_set_post_categories_sets_default_category_for_custom_post_types() {
 		add_filter( 'default_category_post_types', array( $this, 'filter_default_category_post_types' ) );
@@ -216,6 +236,8 @@
 
 	/**
 	 * @ticket 25852
+	 *
+	 * @covers ::sanitize_term_field
 	 */
 	function test_sanitize_term_field() {
 		$term = wp_insert_term( 'foo', $this->taxonomy );
@@ -228,6 +250,8 @@
 
 	/**
 	 * @ticket 19205
+	 *
+	 * @covers ::wp_insert_term
 	 */
 	function test_orphan_category() {
 		$cat_id1 = self::factory()->category->create();
Index: tests/phpunit/tests/theme.php
===================================================================
--- tests/phpunit/tests/theme.php	(revision 48816)
+++ tests/phpunit/tests/theme.php	(working copy)
@@ -46,6 +46,10 @@
 		parent::tearDown();
 	}
 
+	/**
+	 *
+	 * @covers ::wp_get_themes
+	 */
 	function test_wp_get_themes_default() {
 		$themes = wp_get_themes();
 		$this->assertInstanceOf( 'WP_Theme', $themes[ $this->theme_slug ] );
@@ -59,6 +63,8 @@
 	/**
 	 * @expectedDeprecated get_theme
 	 * @expectedDeprecated get_themes
+	 *
+	 * @covers ::get_themes
 	 */
 	function test_get_themes_default() {
 		$themes = get_themes();
@@ -73,6 +79,8 @@
 	/**
 	 * @expectedDeprecated get_theme
 	 * @expectedDeprecated get_themes
+	 *
+	 * @covers ::get_themes
 	 */
 	function test_get_theme() {
 		$themes = get_themes();
@@ -85,6 +93,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::wp_get_themes
+	 */
 	function test_wp_get_theme() {
 		$themes = wp_get_themes();
 		foreach ( $themes as $theme ) {
@@ -99,6 +111,8 @@
 
 	/**
 	 * @expectedDeprecated get_themes
+	 *
+	 * @covers ::get_themes
 	 */
 	function test_get_themes_contents() {
 		$themes = get_themes();
@@ -169,6 +183,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::wp_get_themes
+	 */
 	function test_wp_get_theme_contents() {
 		$theme = wp_get_theme( $this->theme_slug );
 
@@ -193,6 +211,8 @@
 	 * Make sure we update the default theme list to include the latest default theme.
 	 *
 	 * @ticket 29925
+	 *
+	 * @covers WP_Theme::get_core_default_theme
 	 */
 	function test_default_theme_in_default_theme_list() {
 		$latest_default_theme = WP_Theme::get_core_default_theme();
@@ -202,6 +222,10 @@
 		$this->assertContains( $latest_default_theme->get_stylesheet(), $this->default_themes );
 	}
 
+	/**
+	 *
+	 * @covers WP_Theme::wp_get_theme
+	 */
 	function test_default_themes_have_textdomain() {
 		foreach ( $this->default_themes as $theme ) {
 			if ( wp_get_theme( $theme )->exists() ) {
@@ -212,6 +236,8 @@
 
 	/**
 	 * @ticket 48566
+	 *
+	 * @covers WP_Theme::wp_get_theme
 	 */
 	function test_year_in_readme() {
 		// This test is designed to only run on trunk/master.
@@ -240,6 +266,9 @@
 	/**
 	 * @ticket 20897
 	 * @expectedDeprecated get_theme_data
+	 *
+	 * @covers ::wp_get_theme
+	 * @covers ::get_theme_data
 	 */
 	function test_extra_theme_headers() {
 		$wp_theme = wp_get_theme( $this->theme_slug );
@@ -260,6 +289,9 @@
 	/**
 	 * @expectedDeprecated get_themes
 	 * @expectedDeprecated get_current_theme
+	 *
+	 * @covers ::get_themes
+	 * @covers ::get_current_theme
 	 */
 	function test_switch_theme() {
 		$themes = get_themes();
@@ -332,6 +364,13 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers WP_Theme::errors
+	 * @covers WP_Theme::exists
+	 * @covers ::get_template
+	 * @covers ::get_stylesheet
+	 */
 	function test_switch_theme_bogus() {
 		// Try switching to a theme that doesn't exist.
 		$template = rand_str();
@@ -352,7 +391,7 @@
 	/**
 	 * Test _wp_keep_alive_customize_changeset_dependent_auto_drafts.
 	 *
-	 * @covers ::_wp_keep_alive_customize_changeset_dependent_auto_drafts()
+	 * @covers ::_wp_keep_alive_customize_changeset_dependent_auto_drafts
 	 */
 	function test_wp_keep_alive_customize_changeset_dependent_auto_drafts() {
 		$nav_created_post_ids = $this->factory()->post->create_many(
@@ -418,6 +457,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_defaults() {
 		$registered = register_theme_feature( 'test-feature' );
@@ -434,6 +475,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_explicit() {
 		$args = array(
@@ -460,6 +503,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_upgrades_show_in_rest() {
 		register_theme_feature( 'test-feature', array( 'show_in_rest' => true ) );
@@ -480,6 +525,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_fills_schema() {
 		register_theme_feature(
@@ -514,6 +561,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_does_not_add_boolean_type_if_non_bool_default() {
 		register_theme_feature(
@@ -537,6 +586,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_defaults_additional_properties_to_false() {
 		register_theme_feature(
@@ -564,6 +615,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_with_additional_properties() {
 		register_theme_feature(
@@ -592,6 +645,8 @@
 
 	/**
 	 * @ticket 49406
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_defaults_additional_properties_to_false_in_array() {
 		register_theme_feature(
@@ -627,6 +682,8 @@
 	 *
 	 * @param string $error_code The error code expected.
 	 * @param array  $args       The args to register.
+	 *
+	 * @covers ::register_theme_feature
 	 */
 	public function test_register_theme_support_validation( $error_code, $args ) {
 		$registered = register_theme_feature( 'test-feature', $args );
Index: tests/phpunit/tests/upload.php
===================================================================
--- tests/phpunit/tests/upload.php	(revision 48816)
+++ tests/phpunit/tests/upload.php	(working copy)
@@ -19,6 +19,10 @@
 		update_option( 'uploads_use_yearmonth_folders', 1 );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_upload_dir
+	 */
 	function test_upload_dir_default() {
 		// wp_upload_dir() with default parameters.
 		$info   = wp_upload_dir();
@@ -30,6 +34,10 @@
 		$this->assertEquals( false, $info['error'] );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_upload_dir
+	 */
 	function test_upload_dir_relative() {
 		// wp_upload_dir() with a relative upload path that is not 'wp-content/uploads'.
 		update_option( 'upload_path', 'foo/bar' );
@@ -44,6 +52,8 @@
 
 	/**
 	 * @ticket 5953
+	 *
+	 * @covers ::wp_upload_dir
 	 */
 	function test_upload_dir_absolute() {
 		$path = get_temp_dir() . 'wp-unit-test';
@@ -65,6 +75,10 @@
 		$this->assertEquals( false, $info['error'] );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_upload_dir
+	 */
 	function test_upload_dir_no_yearnum() {
 		update_option( 'uploads_use_yearmonth_folders', 0 );
 
@@ -77,6 +91,10 @@
 		$this->assertEquals( false, $info['error'] );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_upload_dir
+	 */
 	function test_upload_path_absolute() {
 		update_option( 'upload_url_path', 'http://' . WP_TESTS_DOMAIN . '/asdf' );
 
@@ -91,6 +109,10 @@
 		$this->assertEquals( false, $info['error'] );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_upload_dir
+	 */
 	function test_upload_dir_empty() {
 		// Upload path setting is empty - it should default to 'wp-content/uploads'.
 		update_option( 'upload_path', '' );
Index: tests/phpunit/tests/url.php
===================================================================
--- tests/phpunit/tests/url.php	(revision 48816)
+++ tests/phpunit/tests/url.php	(working copy)
@@ -47,6 +47,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::is_ssl
+	 */
 	function test_is_ssl_by_port() {
 		unset( $_SERVER['HTTPS'] );
 		$_SERVER['SERVER_PORT'] = '443';
@@ -55,6 +59,10 @@
 		$this->assertTrue( $is_ssl );
 	}
 
+	/**
+	 *
+	 * @covers ::is_ssl
+	 */
 	function test_is_ssl_with_no_value() {
 		unset( $_SERVER['HTTPS'] );
 
@@ -67,6 +75,8 @@
 	 *
 	 * @param string $url      Test URL.
 	 * @param string $expected Expected result.
+	 *
+	 * @covers ::admin_url
 	 */
 	function test_admin_url( $url, $expected ) {
 		$siteurl_http   = get_option( 'siteurl' );
@@ -135,6 +145,8 @@
 	 *
 	 * @param string $url      Test URL.
 	 * @param string $expected Expected result.
+	 *
+	 * @covers ::home_url
 	 */
 	function test_home_url( $url, $expected ) {
 		$homeurl_http  = get_option( 'home' );
@@ -198,6 +210,10 @@
 		);
 	}
 
+	/**
+	 *
+	 * @covers ::home_url
+	 */
 	function test_home_url_from_admin() {
 		$screen = get_current_screen();
 
@@ -246,6 +262,10 @@
 		$GLOBALS['current_screen'] = $screen;
 	}
 
+	/**
+	 *
+	 * @covers ::network_home_url
+	 */
 	function test_network_home_url_from_admin() {
 		$screen = get_current_screen();
 
@@ -271,6 +291,10 @@
 		$GLOBALS['current_screen'] = $screen;
 	}
 
+	/**
+	 *
+	 * @covers ::set_url_scheme
+	 */
 	function test_set_url_scheme() {
 		if ( ! function_exists( 'set_url_scheme' ) ) {
 			return;
@@ -335,6 +359,10 @@
 		force_ssl_admin( $forced_admin );
 	}
 
+	/**
+	 *
+	 * @covers ::get_adjacent_post
+	 */
 	public function test_get_adjacent_post() {
 		$now      = time();
 		$post_id  = self::factory()->post->create( array( 'post_date' => gmdate( 'Y-m-d H:i:s', $now - 1 ) ) );
@@ -369,6 +397,8 @@
 	 * Test get_adjacent_post returns the next private post when the author is the currently logged in user.
 	 *
 	 * @ticket 30287
+	 *
+	 * @covers ::get_adjacent_post
 	 */
 	public function test_get_adjacent_post_should_return_private_posts_belonging_to_the_current_user() {
 		$u       = self::factory()->user->create( array( 'role' => 'author' ) );
@@ -406,6 +436,8 @@
 
 	/**
 	 * @ticket 30287
+	 *
+	 * @covers ::get_adjacent_post
 	 */
 	public function test_get_adjacent_post_should_return_private_posts_belonging_to_other_users_if_the_current_user_can_read_private_posts() {
 		$u1      = self::factory()->user->create( array( 'role' => 'author' ) );
@@ -444,6 +476,8 @@
 
 	/**
 	 * @ticket 30287
+	 *
+	 * @covers ::get_adjacent_post
 	 */
 	public function test_get_adjacent_post_should_not_return_private_posts_belonging_to_other_users_if_the_current_user_cannot_read_private_posts() {
 		$u1      = self::factory()->user->create( array( 'role' => 'author' ) );
@@ -490,6 +524,17 @@
 	 * Test that *_url functions handle paths with ".."
 	 *
 	 * @ticket 19032
+	 *
+	 * @covers ::site_url
+	 * @covers ::home_url
+	 * @covers ::admin_url
+	 * @covers ::network_admin_url
+	 * @covers ::user_admin_url
+	 * @covers ::includes_url
+	 * @covers ::network_site_url
+	 * @covers ::network_home_url
+	 * @covers ::content_url
+	 * @covers ::plugins_url
 	 */
 	public function test_url_functions_for_dots_in_paths() {
 		$functions = array(
Index: tests/phpunit/tests/user.php
===================================================================
--- tests/phpunit/tests/user.php	(revision 48816)
+++ tests/phpunit/tests/user.php	(working copy)
@@ -66,6 +66,10 @@
 		$this->author = clone self::$_author;
 	}
 
+	/**
+	 *
+	 * @covers ::get_users
+	 */
 	function test_get_users_of_blog() {
 		// Add one of each user role.
 		$nusers = array(
@@ -91,7 +95,11 @@
 		$this->assertEqualSets( $nusers, $found );
 	}
 
-	// Simple get/set tests for user_option functions.
+	/**
+	 *Simple get/set tests for user_option functions.
+	 *
+	 * @covers ::get_user_option
+	 */
 	function test_user_option() {
 		$key = rand_str();
 		$val = rand_str();
@@ -111,6 +119,8 @@
 
 	/**
 	 * Simple tests for usermeta functions.
+	 *
+	 * @covers ::get_user_meta
 	 */
 	function test_usermeta() {
 		$key = 'key';
@@ -145,6 +155,8 @@
 
 	/**
 	 * Test usermeta functions in array mode.
+	 *
+	 * @covers ::get_user_meta
 	 */
 	function test_usermeta_array() {
 		// Some values to set.
@@ -185,6 +197,9 @@
 
 	/**
 	 * Test property magic functions for property get/set/isset.
+	 *
+	 * @covers WP_User::data
+	 * @covers WP_User::$key
 	 */
 	function test_user_properties() {
 		$user = new WP_User( self::$author_id );
@@ -209,6 +224,8 @@
 	 * Test the magic __unset() method.
 	 *
 	 * @ticket 20043
+	 *
+	 * @covers WP_User::__unset
 	 */
 	public function test_user_unset() {
 		// phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
@@ -229,6 +246,8 @@
 	 * @depends test_user_unset
 	 * @expectedDeprecated WP_User->id
 	 * @ticket 20043
+	 *
+	 * @covers WP_User::__unset
 	 */
 	function test_user_unset_lowercase_id( $user ) {
 		$id = $user->id;
@@ -242,6 +261,8 @@
 	 *
 	 * @depends test_user_unset_lowercase_id
 	 * @ticket 20043
+	 *
+	 * @covers WP_User::__unset
 	 */
 	function test_user_unset_uppercase_id( $user ) {
 		$this->assertNotEmpty( $user->ID );
@@ -251,6 +272,11 @@
 
 	/**
 	 * Test meta property magic functions for property get/set/isset.
+	 *
+	 * @covers WP_User::__get
+	 * @covers WP_User::__set
+	 * @covers WP_User::__isset
+	 * @covers WP_User::__unset
 	 */
 	function test_user_meta_properties() {
 		$user = new WP_User( self::$author_id );
@@ -264,6 +290,8 @@
 
 	/**
 	 * @expectedDeprecated WP_User->id
+	 *
+	 * @coversNothing
 	 */
 	function test_id_property_back_compat() {
 		$user = new WP_User( self::$author_id );
@@ -276,6 +304,8 @@
 
 	/**
 	 * ticket 19265
+	 *
+	 * @coversNothing
 	 */
 	function test_user_level_property_back_compat() {
 		$roles = array(
@@ -294,6 +324,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers WP_User::__construct
+	 */
 	function test_construction() {
 		$user = new WP_User( self::$author_id );
 		$this->assertInstanceOf( 'WP_User', $user );
@@ -333,6 +367,10 @@
 		$this->assertEquals( $user->user_login, $user7->user_login );
 	}
 
+	/**
+	 *
+	 * @covers WP_User::get
+	 */
 	function test_get() {
 		$user = new WP_User( self::$author_id );
 		$this->assertEquals( 'author_login', $user->get( 'user_login' ) );
@@ -344,6 +382,10 @@
 		$this->assertEquals( 'abcdefg', $user->get( 'dashed-key' ) );
 	}
 
+	/**
+	 *
+	 * @covers WP_User::has_prop
+	 */
 	function test_has_prop() {
 		$user = new WP_User( self::$author_id );
 		$this->assertTrue( $user->has_prop( 'user_email' ) );
@@ -354,6 +396,10 @@
 		$this->assertTrue( $user->has_prop( 'dashed-key' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_update_user
+	 */
 	function test_update_user() {
 		$user = new WP_User( self::$author_id );
 
@@ -411,6 +457,8 @@
 
 	/**
 	 * ticket 19595
+	 *
+	 * @covers WP_User::__construct
 	 */
 	function test_global_userdata() {
 		global $userdata, $wpdb;
@@ -427,6 +475,8 @@
 
 	/**
 	 * ticket 19769
+	 *
+	 * @covers WP_User::__construct
 	 */
 	function test_global_userdata_is_null_when_logged_out() {
 		global $userdata;
@@ -448,6 +498,10 @@
 		$this->assertFalse( $user->exists() );
 	}
 
+	/**
+	 *
+	 * @covers WP_User::__construct
+	 */
 	function test_global_authordata() {
 		global $authordata, $id;
 
@@ -480,6 +534,8 @@
 
 	/**
 	 * @ticket 13317
+	 *
+	 * @covers ::get_userdata
 	 */
 	function test_get_userdata() {
 		$this->assertFalse( get_userdata( 0 ) );
@@ -490,6 +546,8 @@
 
 	/**
 	 * @ticket 23480
+	 *
+	 * @covers WP_User::get_data_by
 	 */
 	function test_user_get_data_by_id() {
 		$user = WP_User::get_data_by( 'id', self::$author_id );
@@ -521,6 +579,8 @@
 
 	/**
 	 * @ticket 33869
+	 *
+	 * @covers WP_User::get_data_by
 	 */
 	public function test_user_get_data_by_ID_should_alias_to_id() {
 		$user = WP_User::get_data_by( 'ID', self::$author_id );
@@ -529,6 +589,8 @@
 
 	/**
 	 * @ticket 21431
+	 *
+	 * @covers ::count_many_users_posts
 	 */
 	function test_count_many_users_posts() {
 		$user_id_b = self::factory()->user->create( array( 'role' => 'author' ) );
@@ -562,6 +624,8 @@
 
 	/**
 	 * @ticket 22858
+	 *
+	 * @covers ::wp_update_user
 	 */
 	function test_wp_update_user_on_nonexistent_users() {
 		$user_id = 1;
@@ -576,6 +640,8 @@
 
 	/**
 	 * @ticket 28435
+	 *
+	 * @covers ::wp_update_user
 	 */
 	function test_wp_update_user_should_not_change_password_when_passed_WP_User_instance() {
 		$testuserid = 1;
@@ -591,6 +657,8 @@
 	/**
 	 * @ticket 45747
 	 * @group ms-excluded
+	 *
+	 * @covers ::wp_update_user
 	 */
 	function test_wp_update_user_should_not_mark_user_as_spam_on_single_site() {
 		$u = wp_update_user(
@@ -615,6 +683,8 @@
 
 	/**
 	 * @ticket 28315
+	 *
+	 * @covers ::update_user_meta
 	 */
 	function test_user_meta_error() {
 		$id1 = wp_insert_user(
@@ -646,6 +716,8 @@
 
 	/**
 	 * @ticket 30647
+	 *
+	 * @covers ::update_user_meta
 	 */
 	function test_user_update_email_error() {
 		$id1 = wp_insert_user(
@@ -691,6 +763,8 @@
 	/**
 	 * @ticket 27317
 	 * @dataProvider _illegal_user_logins_data
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	function test_illegal_user_logins_single( $user_login ) {
 		$user_data = array(
@@ -715,6 +789,8 @@
 	/**
 	 * @ticket 27317
 	 * @dataProvider _illegal_user_logins_data
+	 *
+	 * @covers ::register_new_user
 	 */
 	function test_illegal_user_logins_single_wp_create_user( $user_login ) {
 		$user_email = 'testuser-' . $user_login . '@example.com';
@@ -735,6 +811,8 @@
 	/**
 	 * @ticket 27317
 	 * @group ms-required
+	 *
+	 * @covers ::wpmu_validate_user_signup
 	 */
 	function test_illegal_user_logins_multisite() {
 		$user_data = array(
@@ -773,6 +851,8 @@
 
 	/**
 	 * @ticket 24618
+	 *
+	 * @covers ::validate_username
 	 */
 	public function test_validate_username_string() {
 		$this->assertTrue( validate_username( 'johndoe' ) );
@@ -781,6 +861,8 @@
 
 	/**
 	 * @ticket 24618
+	 *
+	 * @covers ::validate_username
 	 */
 	public function test_validate_username_contains_uppercase_letters() {
 		if ( is_multisite() ) {
@@ -792,6 +874,8 @@
 
 	/**
 	 * @ticket 24618
+	 *
+	 * @covers ::validate_username
 	 */
 	public function test_validate_username_empty() {
 		$this->assertFalse( validate_username( '' ) );
@@ -799,6 +883,8 @@
 
 	/**
 	 * @ticket 24618
+	 *
+	 * @covers ::validate_username
 	 */
 	public function test_validate_username_invalid() {
 		$this->assertFalse( validate_username( '@#&99sd' ) );
@@ -806,6 +892,8 @@
 
 	/**
 	 * @ticket 29880
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_not_wipe_existing_password() {
 		$user_details = array(
@@ -828,6 +916,8 @@
 
 	/**
 	 * @ticket 29696
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_sanitize_user_nicename_parameter() {
 		$user = $this->author;
@@ -843,6 +933,8 @@
 
 	/**
 	 * @ticket 33793
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_accept_user_login_with_60_characters() {
 		$user_login = str_repeat( 'a', 60 );
@@ -864,6 +956,8 @@
 
 	/**
 	 * @ticket 33793
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_reject_user_login_over_60_characters() {
 		$user_login = str_repeat( 'a', 61 );
@@ -882,6 +976,8 @@
 
 	/**
 	 * @ticket 33793
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_reject_user_nicename_over_50_characters() {
 		$user_nicename = str_repeat( 'a', 51 );
@@ -900,6 +996,8 @@
 
 	/**
 	 * @ticket 33793
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_not_generate_user_nicename_longer_than_50_chars() {
 		$user_login = str_repeat( 'a', 55 );
@@ -919,6 +1017,8 @@
 
 	/**
 	 * @ticket 33793
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_not_truncate_to_a_duplicate_user_nicename() {
 		$u1 = self::factory()->user->create(
@@ -949,6 +1049,8 @@
 
 	/**
 	 * @ticket 33793
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_should_not_truncate_to_a_duplicate_user_nicename_when_suffix_has_more_than_one_character() {
 		$user_ids = self::factory()->user->create_many(
@@ -985,6 +1087,8 @@
 
 	/**
 	 * @ticket 28004
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_with_invalid_user_id() {
 		global $wpdb;
@@ -1005,6 +1109,8 @@
 
 	/**
 	 * @ticket 47902
+	 *
+	 * @covers ::wp_insert_user
 	 */
 	public function test_wp_insert_user_with_empty_data() {
 		add_filter( 'wp_pre_insert_user_data', '__return_empty_array' );
@@ -1019,6 +1125,8 @@
 
 	/**
 	 * @ticket 35750
+	 *
+	 * @covers ::wp_update_user
 	 */
 	public function test_wp_update_user_should_delete_userslugs_cache() {
 		$u    = self::factory()->user->create();
@@ -1036,6 +1144,10 @@
 		$this->assertEquals( $u, wp_cache_get( $updated_user->user_nicename, 'userslugs' ) );
 	}
 
+	/**
+	 *
+	 * @covers ::wp_update_user
+	 */
 	public function test_changing_email_invalidates_password_reset_key() {
 		global $wpdb;
 
@@ -1088,6 +1200,10 @@
 		$this->assertEmpty( $user->user_activation_key );
 	}
 
+	/**
+	 *
+	 * @covers ::get_users
+	 */
 	public function test_search_users_login() {
 		$users = get_users(
 			array(
@@ -1099,6 +1215,10 @@
 		$this->assertTrue( in_array( (string) self::$contrib_id, $users, true ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_users
+	 */
 	public function test_search_users_url() {
 		$users = get_users(
 			array(
@@ -1110,6 +1230,10 @@
 		$this->assertTrue( in_array( (string) self::$contrib_id, $users, true ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_users
+	 */
 	public function test_search_users_email() {
 		$users = get_users(
 			array(
@@ -1121,6 +1245,10 @@
 		$this->assertTrue( in_array( (string) self::$contrib_id, $users, true ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_users
+	 */
 	public function test_search_users_nicename() {
 		$users = get_users(
 			array(
@@ -1132,6 +1260,10 @@
 		$this->assertTrue( in_array( (string) self::$contrib_id, $users, true ) );
 	}
 
+	/**
+	 *
+	 * @covers ::get_users
+	 */
 	public function test_search_users_display_name() {
 		$users = get_users(
 			array(
@@ -1145,6 +1277,8 @@
 
 	/**
 	 * @ticket 32158
+	 *
+	 * @covers ::wp_update_user
 	 */
 	function test_email_case() {
 		// Alter the case of the email address (which stays the same).
@@ -1159,6 +1293,8 @@
 
 	/**
 	 * @ticket 32158
+	 *
+	 * @covers ::wp_update_user
 	 */
 	function test_email_change() {
 		// Change the email address.
@@ -1182,6 +1318,8 @@
 	 * @dataProvider data_wp_new_user_notifications
 	 * @ticket 33654
 	 * @ticket 36009
+	 *
+	 * @covers ::wp_new_user_notification
 	 */
 	function test_wp_new_user_notification( $notify, $admin_email_sent_expected, $user_email_sent_expected ) {
 		reset_phpmailer_instance();
@@ -1262,6 +1400,8 @@
 	 *
 	 * @ticket 33654
 	 * @expectedDeprecated wp_new_user_notification
+	 *
+	 * @covers ::wp_new_user_notification
 	 */
 	function test_wp_new_user_notification_old_signature_throws_deprecated_warning_but_sends() {
 		reset_phpmailer_instance();
@@ -1287,6 +1427,8 @@
 	 * Set up a user and try sending a notification using `wp_new_user_notification( $user );`.
 	 *
 	 * @ticket 34377
+	 *
+	 * @covers ::wp_new_user_notification
 	 */
 	function test_wp_new_user_notification_old_signature_no_password() {
 		reset_phpmailer_instance();
@@ -1312,6 +1454,8 @@
 	 * Ensure blog's admin email change notification emails do not contain encoded HTML entities
 	 *
 	 * @ticket 40015
+	 *
+	 * @covers ::update_option_new_admin_email
 	 */
 	function test_new_admin_email_notification_html_entities_decoded() {
 		reset_phpmailer_instance();
@@ -1345,6 +1489,8 @@
 	 * - is not a valid email
 	 *
 	 * @dataProvider data_user_admin_email_confirmation_emails
+	 *
+	 * @covers ::update_option_new_admin_email
 	 */
 	function test_new_admin_email_confirmation_not_sent_when_email_invalid( $email, $message ) {
 		reset_phpmailer_instance();
@@ -1386,6 +1532,8 @@
 	 * - Matches another user's email
 	 *
 	 * @dataProvider data_user_change_email_confirmation_emails
+	 *
+	 * @covers ::send_confirmation_on_profile_email
 	 */
 	function test_profile_email_confirmation_not_sent_invalid_email( $email, $message ) {
 
@@ -1451,6 +1599,8 @@
 	 * Checks that calling edit_user() with no password returns an error when adding, and doesn't when updating.
 	 *
 	 * @ticket 35715
+	 *
+	 * @covers ::edit_user
 	 */
 	function test_edit_user_blank_pw() {
 		$_POST                 = array();
@@ -1520,6 +1670,8 @@
 
 	/**
 	 * @ticket 16470
+	 *
+	 * @covers ::wp_set_current_user
 	 */
 	function test_send_confirmation_on_profile_email() {
 		reset_phpmailer_instance();
@@ -1555,6 +1707,8 @@
 
 	/**
 	 * @ticket 16470
+	 *
+	 * @covers ::wp_set_current_user
 	 */
 	function test_remove_send_confirmation_on_profile_email() {
 		remove_action( 'personal_options_update', 'send_confirmation_on_profile_email' );
@@ -1595,6 +1749,8 @@
 	 *
 	 * @ticket 16470
 	 * @ticket 40015
+	 *
+	 * @covers ::send_confirmation_on_profile_email
 	 */
 	function test_send_confirmation_on_profile_email_html_entities_decoded() {
 		$user_id = self::factory()->user->create(
@@ -1631,6 +1787,8 @@
 
 	/**
 	 * @ticket 42564
+	 *
+	 * @covers ::edit_user
 	 */
 	function test_edit_user_role_update() {
 		$_POST    = array();
@@ -1674,6 +1832,8 @@
 	 * Testing the `wp_user_personal_data_exporter()` function when no user exists.
 	 *
 	 * @ticket 43547
+	 *
+	 * @covers ::wp_user_personal_data_exporter
 	 */
 	function test_wp_user_personal_data_exporter_no_user() {
 		$actual = wp_user_personal_data_exporter( 'not-a-user-email@test.com' );
@@ -1691,6 +1851,8 @@
 	 * user exists.
 	 *
 	 * @ticket 43547
+	 *
+	 * @covers ::wp_user_personal_data_exporter
 	 */
 	function test_wp_user_personal_data_exporter() {
 		$test_user = new WP_User( self::$contrib_id );
@@ -1711,6 +1873,8 @@
 	 * with Community Events Location IP data.
 	 *
 	 * @ticket 43921
+	 *
+	 * @covers ::wp_user_personal_data_exporter
 	 */
 	function test_wp_community_events_location_ip_personal_data_exporter() {
 		$test_user = new WP_User( self::$contrib_id );
@@ -1735,6 +1899,8 @@
 	 * with Community Events Location city data.
 	 *
 	 * @ticket 43921
+	 *
+	 * @covers ::wp_user_personal_data_exporter
 	 */
 	function test_wp_community_events_location_city_personal_data_exporter() {
 		$test_user = new WP_User( self::$contrib_id );
@@ -1777,6 +1943,8 @@
 	 * with Session Tokens data.
 	 *
 	 * @ticket 45889
+	 *
+	 * @covers ::wp_user_personal_data_exporter
 	 */
 	function test_wp_session_tokens_personal_data_exporter() {
 		$test_user = new WP_User( self::$contrib_id );
@@ -1821,6 +1989,8 @@
 	 * @since 5.4.0
 	 *
 	 * @ticket 47509
+	 *
+	 * @covers ::wp_user_personal_data_exporter
 	 */
 	function test_filter_wp_privacy_additional_user_profile_data() {
 		$test_user = new WP_User( self::$contrib_id );
Index: tests/phpunit/tests/walker.php
===================================================================
--- tests/phpunit/tests/walker.php	(revision 48816)
+++ tests/phpunit/tests/walker.php	(working copy)
@@ -16,6 +16,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_single_item() {
 
 		$items  = array(
@@ -31,6 +35,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_single_item_flat() {
 
 		$items  = array(
@@ -46,6 +54,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_single_item_depth_1() {
 
 		$items  = array(
@@ -61,6 +73,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_single_level() {
 
 		$items = array(
@@ -81,6 +97,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_multiple_levels() {
 
 		$items = array(
@@ -101,6 +121,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_multiple_levels_flat() {
 
 		$items = array(
@@ -121,6 +145,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_multiple_levels_depth_1() {
 
 		$items = array(
@@ -141,6 +169,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_multiple_levels_depth_2() {
 
 		$items = array(
@@ -165,6 +197,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_recursive() {
 
 		$items = array(
@@ -185,6 +221,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_single_item_child() {
 
 		$items = array(
@@ -201,6 +241,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_single_item_missing_parent_depth_1() {
 
 		$items = array(
@@ -224,6 +268,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_missing_parents() {
 
 		$items = array(
@@ -248,6 +296,10 @@
 
 	}
 
+	/**
+	 *
+	 * @covers Walker::walk
+	 */
 	function test_multiple_items_missing_parents_depth_1() {
 
 		$items = array(
Index: tests/phpunit/tests/widgets.php
===================================================================
--- tests/phpunit/tests/widgets.php	(revision 48816)
+++ tests/phpunit/tests/widgets.php	(working copy)
@@ -31,6 +31,9 @@
 	/**
 	 * @see register_widget()
 	 * @see unregister_widget()
+	 *
+	 * @covers ::register_widget
+	 * @covers ::unregister_widget
 	 */
 	function test_register_and_unregister_widget_core_widget() {
 		global $wp_widget_factory;
@@ -49,6 +52,9 @@
 	 * @see register_widget()
 	 * @see unregister_widget()
 	 * @ticket 28216
+	 *
+	 * @covers ::register_widget
+	 * @covers ::unregister_widget
 	 */
 	function test_register_and_unregister_widget_instance() {
 		global $wp_widget_factory, $wp_registered_widgets;
@@ -125,6 +131,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::register_sidebars
 	 */
 	function test_register_sidebars_single() {
 
@@ -138,6 +146,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::register_sidebars
 	 */
 	function test_register_sidebars_multiple() {
 
@@ -161,6 +171,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::register_sidebars
 	 */
 	function test_register_sidebar_with_no_id() {
 		global $wp_registered_sidebars;
@@ -178,6 +190,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::register_sidebars
 	 */
 	function test_unregister_sidebar_registered_with_no_id() {
 		global $wp_registered_sidebars;
@@ -197,6 +211,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::register_sidebars
 	 */
 	function test_register_sidebar_with_string_id() {
 
@@ -210,6 +226,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::unregister_sidebar
 	 */
 	function test_unregister_sidebar_with_string_id() {
 		global $wp_registered_sidebars;
@@ -223,6 +241,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::register_sidebars
 	 */
 	function test_register_sidebar_with_numeric_id() {
 		global $wp_registered_sidebars;
@@ -235,6 +255,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::unregister_sidebar
 	 */
 	function test_unregister_sidebar_with_numeric_id() {
 		global $wp_registered_sidebars;
@@ -256,6 +278,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::dynamic_sidebar
 	 */
 	function test_dynamic_sidebar_using_sidebar_registered_with_no_id() {
 		$this->setExpectedIncorrectUsage( 'register_sidebar' );
@@ -275,6 +299,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::dynamic_sidebar
 	 */
 	function test_dynamic_sidebar_using_invalid_sidebar_id() {
 		register_sidebar( array( 'id' => 'wp-unit-text' ) );
@@ -293,6 +319,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::dynamic_sidebar
 	 */
 	function test_dynamic_sidebar_numeric_id() {
 		$sidebar_id = 2;
@@ -307,6 +335,8 @@
 
 	/**
 	 * @group sidebar
+	 *
+	 * @covers ::dynamic_sidebar
 	 */
 	function test_dynamic_sidebar_string_id() {
 		$sidebar_id = 'wp-unit-tests';
@@ -321,6 +351,8 @@
 
 	/**
 	 * @see WP_Widget_Search::form()
+	 *
+	 * @covers WP_Widget_Search::form
 	 */
 	function test_wp_widget_search_form() {
 		$widget = new WP_Widget_Search( 'foo', 'Foo' );
@@ -343,6 +375,8 @@
 
 	/**
 	 * @see WP_Widget::form()
+	 *
+	 * @covers WP_Widget_Search::form
 	 */
 	function test_wp_widget_form() {
 		$widget = new WP_Widget( 'foo', 'Foo' );
@@ -355,6 +389,8 @@
 
 	/**
 	 * @see WP_Widget::__construct()
+	 *
+	 * @covers WP_Widget::__construct
 	 */
 	function test_wp_widget_constructor() {
 		$id_base    = 'foo';
@@ -385,6 +421,8 @@
 	/**
 	 * @see WP_Widget::get_field_name()
 	 * @dataProvider data_wp_widget_get_field_name
+	 *
+	 * @covers WP_Widget::get_field_name
 	 */
 	function test_wp_widget_get_field_name( $expected, $value_to_test ) {
 		$widget = new WP_Widget( 'foo', 'Foo' );
@@ -435,6 +473,8 @@
 	/**
 	 * @see WP_Widget::get_field_id()
 	 * @dataProvider data_wp_widget_get_field_id
+	 *
+	 * @covers WP_Widget::get_field_id
 	 */
 	function test_wp_widget_get_field_id( $expected, $value_to_test ) {
 		$widget = new WP_Widget( 'foo', 'Foo' );
@@ -484,6 +524,9 @@
 
 	/**
 	 * @see WP_Widget::_register()
+	 *
+	 * @covers WP_Widget::_register
+	 * @covers ::wp_widgets_init
 	 */
 	function test_wp_widget__register() {
 		global $wp_registered_widgets;
@@ -506,6 +549,8 @@
 
 	/**
 	 * @see WP_Widget::is_preview()
+	 *
+	 * @covers WP_Widget::is_preview
 	 */
 	function test_wp_widget_is_preview() {
 		global $wp_customize;
@@ -529,6 +574,8 @@
 
 	/**
 	 * @see WP_Widget::get_settings()
+	 *
+	 * @covers WP_Widget::get_settings
 	 */
 	function test_wp_widget_get_settings() {
 		global $wp_registered_widgets;
@@ -566,6 +613,8 @@
 
 	/**
 	 * @see WP_Widget::save_settings()
+	 *
+	 * @covers WP_Widget::save_settings
 	 */
 	function test_wp_widget_save_settings() {
 		global $wp_registered_widgets;
@@ -597,6 +646,8 @@
 
 	/**
 	 * @see WP_Widget::save_settings()
+	 *
+	 * @covers WP_Widget::save_settings
 	 */
 	function test_wp_widget_save_settings_delete() {
 		global $wp_registered_widgets;
@@ -614,6 +665,8 @@
 
 	/**
 	 * @see wp_widget_control()
+	 *
+	 * @covers ::wp_widget_control
 	 */
 	function test_wp_widget_control() {
 		global $wp_registered_widgets;
@@ -676,6 +729,10 @@
 		}
 	}
 
+	/**
+	 *
+	 * @covers ::the_widget
+	 */
 	function test_the_widget_custom_before_title_arg() {
 		register_widget( 'WP_Widget_Text' );
 
@@ -704,6 +761,8 @@
 	 * display an unregistered widget.
 	 *
 	 * @see \the_widget()
+	 *
+	 * @covers ::the_widget
 	 */
 	function test_the_widget_with_unregistered_widget() {
 		$this->setExpectedIncorrectUsage( 'the_widget' );
@@ -712,6 +771,8 @@
 
 	/**
 	 * @ticket 34226
+	 *
+	 * @covers ::the_widget
 	 */
 	public function test_the_widget_should_short_circuit_with_widget_display_callback() {
 		add_filter( 'widget_display_callback', '__return_false' );
@@ -740,7 +801,7 @@
 	/**
 	 * Tests for when 'sidebars_widgets' theme mod is populated.
 	 *
-	 * @covers ::retrieve_widgets()
+	 * @covers ::retrieve_widgets
 	 */
 	function test_retrieve_widgets_with_theme_mod() {
 		global $sidebars_widgets, $_wp_sidebars_widgets;
@@ -804,7 +865,7 @@
 	/**
 	 * Tests for when sidebars widgets matches registered sidebars.
 	 *
-	 * @covers ::retrieve_widgets()
+	 * @covers ::retrieve_widgets
 	 */
 	function test_retrieve_widgets_with_sidebars_widgets_matching_registered_sidebars() {
 		global $sidebars_widgets;
@@ -842,7 +903,7 @@
 	/**
 	 * Tests for when sidebars widgets doesn't match registered sidebars.
 	 *
-	 * @covers ::retrieve_widgets()
+	 * @covers ::retrieve_widgets
 	 */
 	function test_retrieve_widgets_with_sidebars_widgets_not_matching_registered_sidebars() {
 		global $sidebars_widgets, $_wp_sidebars_widgets;
@@ -936,7 +997,7 @@
 	/**
 	 * Tests for Customizer mode.
 	 *
-	 * @covers ::retrieve_widgets()
+	 * @covers ::retrieve_widgets
 	 */
 	function test_retrieve_widgets_for_customizer() {
 		global $sidebars_widgets, $_wp_sidebars_widgets;
@@ -983,6 +1044,10 @@
 		$this->assertNotEquals( $sidebars_widgets, wp_get_sidebars_widgets() );
 	}
 
+	/**
+	 *
+	 * @covers ::retrieve_widgets
+	 */
 	function test_retreive_widgets_with_single_widget() {
 		global $sidebars_widgets;
 
@@ -1008,7 +1073,7 @@
 	/**
 	 * Tests for orphaned widgets being moved into inactive widgets.
 	 *
-	 * @covers ::retrieve_widgets()
+	 * @covers ::retrieve_widgets
 	 */
 	function test_retrieve_widgets_move_orphaned_widgets_to_inactive() {
 		global $sidebars_widgets;
@@ -1043,7 +1108,7 @@
 	/**
 	 * Test _wp_remove_unregistered_widgets.
 	 *
-	 * @covers ::_wp_remove_unregistered_widgets()
+	 * @covers ::_wp_remove_unregistered_widgets
 	 */
 	public function test__wp_remove_unregistered_widgets() {
 		$widgets = array(
@@ -1073,7 +1138,7 @@
 	/**
 	 * Two themes with one sidebar each should just map, switching to a theme not previously-active.
 	 *
-	 * @covers ::wp_map_sidebars_widgets()
+	 * @covers ::wp_map_sidebars_widgets
 	 */
 	public function test_one_sidebar_each() {
 		$this->register_sidebars( array( 'primary' ) );
@@ -1093,7 +1158,7 @@
 	/**
 	 * Sidebars with the same name should map, switching to a theme not previously-active.
 	 *
-	 * @covers ::wp_map_sidebars_widgets()
+	 * @covers ::wp_map_sidebars_widgets
 	 */
 	public function test_sidebars_with_same_slug() {
 		$this->register_sidebars( array( 'primary', 'secondary' ) );
@@ -1111,7 +1176,7 @@
 	/**
 	 * Make educated guesses on theme sidebars.
 	 *
-	 * @covers ::wp_map_sidebars_widgets()
+	 * @covers ::wp_map_sidebars_widgets
 	 */
 	public function test_sidebar_guessing() {
 		$this->register_sidebars( array( 'primary', 'secondary' ) );
@@ -1134,7 +1199,7 @@
 	/**
 	 * Make sure two sidebars that fall in the same group don't get the same menu assigned.
 	 *
-	 * @covers ::wp_map_sidebars_widgets()
+	 * @covers ::wp_map_sidebars_widgets
 	 */
 	public function test_sidebar_guessing_one_menu_per_group() {
 		$this->register_sidebars( array( 'primary' ) );
@@ -1155,7 +1220,7 @@
 	/**
 	 * Make sure two sidebars that fall in the same group get menus assigned from the same group.
 	 *
-	 * @covers ::wp_map_sidebars_widgets()
+	 * @covers ::wp_map_sidebars_widgets
 	 */
 	public function test_sidebar_guessing_one_menu_per_sidebar() {
 		$this->register_sidebars( array( 'primary', 'main' ) );
Index: tests/phpunit/tests/wp.php
===================================================================
--- tests/phpunit/tests/wp.php	(revision 48816)
+++ tests/phpunit/tests/wp.php	(working copy)
@@ -14,6 +14,10 @@
 		$this->wp = new WP();
 	}
 
+	/**
+	 *
+	 * @covers WP::add_query_var
+	 */
 	public function test_add_query_var() {
 		$public_qv_count = count( $this->wp->public_query_vars );
 
@@ -26,6 +30,10 @@
 		$this->assertTrue( in_array( 'test2', $this->wp->public_query_vars, true ) );
 	}
 
+	/**
+	 *
+	 * @covers WP::remove_query_var
+	 */
 	public function test_remove_query_var() {
 		$public_qv_count = count( $this->wp->public_query_vars );
 
