protected function checkRequirements() { parent::checkRequirements(); // Core tests no longer check against open Trac tickets, but others using WP_UnitTestCase may do so. if (defined('WP_RUN_CORE_TESTS') && WP_RUN_CORE_TESTS) { return; } if (WP_TESTS_FORCE_KNOWN_BUGS) { return; } $tickets = PHPUnit_Util_Test::getTickets(get_class($this), $this->getName(false)); foreach ($tickets as $ticket) { if (is_numeric($ticket)) { $this->knownWPBug($ticket); } elseif ('UT' == substr($ticket, 0, 2)) { $ticket = substr($ticket, 2); if ($ticket && is_numeric($ticket)) { $this->knownUTBug($ticket); } } elseif ('Plugin' == substr($ticket, 0, 6)) { $ticket = substr($ticket, 6); if ($ticket && is_numeric($ticket)) { $this->knownPluginBug($ticket); } } } }
/** * A test ended. * * @param PHPUnit_Framework_Test $test * @param float $time */ public function endTest(PHPUnit_Framework_Test $test, $time) { if (!$test instanceof PHPUnit_Framework_Warning) { if ($test->getStatus() == PHPUnit_Runner_BaseTestRunner::STATUS_PASSED) { $ifStatus = array('assigned', 'new', 'reopened'); $newStatus = 'closed'; $message = 'Automatically closed by PHPUnit (test passed).'; $resolution = 'fixed'; $cumulative = TRUE; } else { if ($test->getStatus() == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE) { $ifStatus = array('closed'); $newStatus = 'reopened'; $message = 'Automatically reopened by PHPUnit (test failed).'; $resolution = ''; $cumulative = FALSE; } else { return; } } $name = $test->getName(); $tickets = PHPUnit_Util_Test::getTickets(get_class($test), $name); foreach ($tickets as $ticket) { // Remove this test from the totals (if it passed). if ($test->getStatus() == PHPUnit_Runner_BaseTestRunner::STATUS_PASSED) { unset($this->ticketCounts[$ticket][$name]); } // Only close tickets if ALL referenced cases pass // but reopen tickets if a single test fails. if ($cumulative) { // Determine number of to-pass tests: if (count($this->ticketCounts[$ticket]) > 0) { // There exist remaining test cases with this reference. $adjustTicket = FALSE; } else { // No remaining tickets, go ahead and adjust. $adjustTicket = TRUE; } } else { $adjustTicket = TRUE; } if ($adjustTicket && in_array($ticketInfo[3]['status'], $ifStatus)) { $this->updateTicket($ticket, $newStatus, $message, $resolution); } } } }
protected function checkRequirements() { parent::checkRequirements(); if (WP_TESTS_FORCE_KNOWN_BUGS) { return; } $tickets = PHPUnit_Util_Test::getTickets(get_class($this), $this->getName(false)); foreach ($tickets as $ticket) { if (is_numeric($ticket)) { $this->knownWPBug($ticket); } elseif ('UT' == substr($ticket, 0, 2)) { $ticket = substr($ticket, 2); if ($ticket && is_numeric($ticket)) { $this->knownUTBug($ticket); } } elseif ('Plugin' == substr($ticket, 0, 6)) { $ticket = substr($ticket, 6); if ($ticket && is_numeric($ticket)) { $this->knownPluginBug($ticket); } } } }