开发PHPUnit:如何运行其测试


Developing PHPUnit: how to run its tests

我想改变PHPUnit的源代码,但首先我想能够运行它的测试,以确保我没有破坏任何东西。

我使用git将版本4.7.7导出到一个目录中。在该目录下,然后运行composer install

然后将cd放入tests并运行:

phpunit --bootstrap ./bootstrap.php ./

(我用来运行测试的PHPUnit版本也是4.7.7)

但是我得到了这个:

PHP Fatal error:  Uncaught exception 'Exception' with message 'PHPUnit suppresses exceptions thrown outside of test case function' in C:'Users'jodes'Documents'NetBeansProjects'PHPUnit'phpunit'tests'Regression'GitHub'873'Issue873Test.php:7
Stack trace:
#0 phar://C:/phpbin/phpunit.phar/phpunit/Util/Fileloader.php(52): include_once()
#1 phar://C:/phpbin/phpunit.phar/phpunit/Util/Fileloader.php(36): PHPUnit_Util_Fileloader::load('C:'Users'jody'D...')
#2 phar://C:/phpbin/phpunit.phar/phpunit/Framework/TestSuite.php(334): PHPUnit_Util_Fileloader::checkAndLoad('C:'Users'jody'D...')
#3 phar://C:/phpbin/phpunit.phar/phpunit/Framework/TestSuite.php(406): PHPUnit_Framework_TestSuite->addTestFile('C:'Users'jody'D...')
#4 phar://C:/phpbin/phpunit.phar/phpunit/Runner/BaseTestRunner.php(57): PHPUnit_Framework_TestSuite->addTestFiles(Array)
#5 phar://C:/phpbin/phpunit.phar/phpunit/TextUI/Command.php(121): PHPUnit_Runner_BaseTestRunner->getTest('.'tests'', '', Array)
#6 phar://C:/phpbin/phpunit.phar/phpunit/TextUI/Command.php(99): PHPUnit_TextU in C:'Users'jody'Documents'NetBeansProjects'PHPUnit'phpunit'tests'Regression'GitHub'873'Issue873Test.php on line 7
Fatal error: Uncaught exception 'Exception' with message 'PHPUnit suppresses exceptions thrown outside of test case function' in C:'Users'jodes'Documents'NetBeansProjects'PHPUnit'phpunit'tests'Regression'GitHub'873'Issue873Test.php:7
Stack trace:
#0 phar://C:/phpbin/phpunit.phar/phpunit/Util/Fileloader.php(52): include_once()
#1 phar://C:/phpbin/phpunit.phar/phpunit/Util/Fileloader.php(36): PHPUnit_Util_Fileloader::load('C:'Users'jody'D...')
#2 phar://C:/phpbin/phpunit.phar/phpunit/Framework/TestSuite.php(334): PHPUnit_Util_Fileloader::checkAndLoad('C:'Users'jody'D...')
#3 phar://C:/phpbin/phpunit.phar/phpunit/Framework/TestSuite.php(406): PHPUnit_Framework_TestSuite->addTestFile('C:'Users'jody'D...')
#4 phar://C:/phpbin/phpunit.phar/phpunit/Runner/BaseTestRunner.php(57): PHPUnit_Framework_TestSuite->addTestFiles(Array)
#5 phar://C:/phpbin/phpunit.phar/phpunit/TextUI/Command.php(121): PHPUnit_Runner_BaseTestRunner->getTest('.'tests'', '', Array)
#6 phar://C:/phpbin/phpunit.phar/phpunit/TextUI/Command.php(99): PHPUnit_TextU in C:'Users'jody'Documents'NetBeansProjects'PHPUnit'phpunit'tests'Regression'GitHub'873'Issue873Test.php on line 7

我做错了什么?由于

如果你的类"Success"有一个命名空间,你最好使用phpunit的——bootstrap参数的自动加载器

如果这种情况与自动加载有关,您可能需要阅读http://jes.st/2011/phpunit-bootstrap-and-autoloading-classes/(一个旧的,但一个清晰的)