Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4148973
BaseTestRunner.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
BaseTestRunner.php
View Options
<?php
declare
(
strict_types
=
1
);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
PHPUnit\Runner
;
use
function
is_dir
;
use
function
is_file
;
use
function
substr
;
use
PHPUnit\Framework\Exception
;
use
PHPUnit\Framework\TestSuite
;
use
ReflectionClass
;
use
ReflectionException
;
use
SebastianBergmann\FileIterator\Facade
as
FileIteratorFacade
;
/**
* @internal This class is not covered by the backward compatibility promise for PHPUnit
*/
abstract
class
BaseTestRunner
{
/**
* @var int
*/
public
const
STATUS_UNKNOWN
=
-
1
;
/**
* @var int
*/
public
const
STATUS_PASSED
=
0
;
/**
* @var int
*/
public
const
STATUS_SKIPPED
=
1
;
/**
* @var int
*/
public
const
STATUS_INCOMPLETE
=
2
;
/**
* @var int
*/
public
const
STATUS_FAILURE
=
3
;
/**
* @var int
*/
public
const
STATUS_ERROR
=
4
;
/**
* @var int
*/
public
const
STATUS_RISKY
=
5
;
/**
* @var int
*/
public
const
STATUS_WARNING
=
6
;
/**
* @var string
*/
public
const
SUITE_METHODNAME
=
'suite'
;
/**
* Returns the loader to be used.
*/
public
function
getLoader
():
TestSuiteLoader
{
return
new
StandardTestSuiteLoader
;
}
/**
* Returns the Test corresponding to the given suite.
* This is a template method, subclasses override
* the runFailed() and clearStatus() methods.
*
* @param string|string[] $suffixes
*
* @throws Exception
*/
public
function
getTest
(
string
$suiteClassFile
,
$suffixes
=
''
):
?
TestSuite
{
if
(
is_dir
(
$suiteClassFile
))
{
/** @var string[] $files */
$files
=
(
new
FileIteratorFacade
)->
getFilesAsArray
(
$suiteClassFile
,
$suffixes
,
);
$suite
=
new
TestSuite
(
$suiteClassFile
);
$suite
->
addTestFiles
(
$files
);
return
$suite
;
}
if
(
is_file
(
$suiteClassFile
)
&&
substr
(
$suiteClassFile
,
-
5
,
5
)
===
'.phpt'
)
{
$suite
=
new
TestSuite
;
$suite
->
addTestFile
(
$suiteClassFile
);
return
$suite
;
}
try
{
$testClass
=
$this
->
loadSuiteClass
(
$suiteClassFile
,
);
}
catch
(
\PHPUnit\Exception
$e
)
{
$this
->
runFailed
(
$e
->
getMessage
());
return
null
;
}
try
{
$suiteMethod
=
$testClass
->
getMethod
(
self
::
SUITE_METHODNAME
);
if
(!
$suiteMethod
->
isStatic
())
{
$this
->
runFailed
(
'suite() method must be static.'
,
);
return
null
;
}
$test
=
$suiteMethod
->
invoke
(
null
,
$testClass
->
getName
());
}
catch
(
ReflectionException
$e
)
{
$test
=
new
TestSuite
(
$testClass
);
}
$this
->
clearStatus
();
return
$test
;
}
/**
* Returns the loaded ReflectionClass for a suite name.
*/
protected
function
loadSuiteClass
(
string
$suiteClassFile
):
ReflectionClass
{
return
$this
->
getLoader
()->
load
(
$suiteClassFile
);
}
/**
* Clears the status message.
*/
protected
function
clearStatus
():
void
{
}
/**
* Override to define how to handle a failed loading of
* a test suite.
*/
abstract
protected
function
runFailed
(
string
$message
):
void
;
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 19 2026, 19:00 (6 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
68/35/a1c48996492214186a27d78ce781
Default Alt Text
BaseTestRunner.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment