当尝试运行php库的单元测试时:
$ ./vendor/bin/phpunit -c Tests/phpunit.xml
我得到错误:
PHP Warning: include_once(/home/philipp/src/my-project): failed to open stream: Inappropriate ioctl for device in /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php on line 58
PHP Stack trace:
PHP 1. {main}() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:36
PHP 3. PHPUnit_TextUI_Command->run() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:105
PHP 4. PHPUnit_TextUI_Command->handleArguments() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:115
PHP 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:623
PHP 6. PHPUnit_Util_Configuration->getTestSuite() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:853
PHP 7. PHPUnit_Framework_TestSuite->addTestFile() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:981
PHP 8. PHPUnit_Util_Fileloader::checkAndLoad() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Framework/TestSuite.php:333
PHP 9. PHPUnit_Util_Fileloader::load() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php:42
Warning: include_once(/home/philipp/src/my-project): failed to open stream: Inappropriate ioctl for device in /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php on line 58
Call Stack:
0.0001 253712 1. {main}() /hdreamlines-libraryome/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:0
0.0045 763408 2. PHPUnit_TextUI_Command::main() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:36
0.0045 764032 3. PHPUnit_TextUI_Command->run() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:105
0.0045 766696 4. PHPUnit_TextUI_Command->handleArguments() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:115
0.0070 1313824 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:623
0.0070 1315088 6. PHPUnit_Util_Configuration->getTestSuite() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:853
0.0084 1526408 7. PHPUnit_Framework_TestSuite->addTestFile() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:981
0.0085 1560192 8. PHPUnit_Util_Fileloader::checkAndLoad() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Framework/TestSuite.php:333
0.0085 1560296 9. PHPUnit_Util_Fileloader::load() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php:42
PHP Warning: include_once(): Failed opening '/home/philipp/src/my-project' for inclusion (include_path='/home/philipp/src/my-project/vendor/phpunit/php-text-template:/home/philipp/src/my-project/vendor/phpunit/php-timer:.:/usr/share/php:/usr/share/pear') in /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php on line 58
PHP Stack trace:
PHP 1. {main}() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:36
PHP 3. PHPUnit_TextUI_Command->run() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:105
PHP 4. PHPUnit_TextUI_Command->handleArguments() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:115
PHP 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:623
PHP 6. PHPUnit_Util_Configuration->getTestSuite() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:853
PHP 7. PHPUnit_Framework_TestSuite->addTestFile() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:981
PHP 8. PHPUnit_Util_Fileloader::checkAndLoad() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Framework/TestSuite.php:333
PHP 9. PHPUnit_Util_Fileloader::load() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php:42
Warning: include_once(): Failed opening '/home/philipp/src/my-project' for inclusion (include_path='/home/philipp/src/my-project/vendor/phpunit/php-text-template:/home/philipp/src/my-project/vendor/phpunit/php-timer:.:/usr/share/php:/usr/share/pear') in /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php on line 58
Call Stack:
0.0001 253712 1. {main}() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:0
0.0045 763408 2. PHPUnit_TextUI_Command::main() /home/philipp/src/my-project/vendor/phpunit/phpunit/phpunit:36
0.0045 764032 3. PHPUnit_TextUI_Command->run() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:105
0.0045 766696 4. PHPUnit_TextUI_Command->handleArguments() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:115
0.0070 1313824 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/TextUI/Command.php:623
0.0070 1315088 6. PHPUnit_Util_Configuration->getTestSuite() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:853
0.0084 1526408 7. PHPUnit_Framework_TestSuite->addTestFile() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Configuration.php:981
0.0085 1560192 8. PHPUnit_Util_Fileloader::checkAndLoad() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Framework/TestSuite.php:333
0.0085 1560296 9. PHPUnit_Util_Fileloader::load() /home/philipp/src/my-project/vendor/phpunit/phpunit/src/Util/Fileloader.php:42
PHPUnit 4.6.6 by Sebastian Bergmann and contributors.
Configuration read from /home/philipp/src/my-project/Tests/phpunit.xml
我怀疑这可能是一个文件权限错误,但是
sudo chown ME:ME . -R
无法解决此问题。
phpunit.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
verbose="true"
colors="true"
bootstrap="../vendor/autoload.php"
>
<php>
<ini name="display_errors" value="true" />
<ini name="display_startup_errors" value="true" />
<ini name="max_execution_time" value="600" />
<ini name="memory_limit" value="256M" />
</php>
<filter>
<blacklist>
<directory suffix=".php">../vendor</directory>
</blacklist>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">../src</directory>
</whitelist>
</filter>
<testsuites>
<testsuite name="MyLibrary">
<file>./</file>
</testsuite>
</testsuites>
<listeners>
<listener class="'Mockery'Adapter'Phpunit'TestListener" />
</listeners>
</phpunit>
库的源代码在src
目录下,测试在Tests
目录下。
这个phpunit设置没有找到应该在哪里的测试文件,因此需要添加路径:
$ ./vendor/bin/phpunit -c Tests/phpunit.xml Tests/
PHPUnit 4.6.6 by Sebastian Bergmann and contributors.
Configuration read from /home/philipp/src/my-library/Tests/phpunit.xml
......................
Time: 129 ms, Memory: 9.50Mb
OK (22 tests, 62 assertions)