在使用Composer和PHPUnit的项目上使用PHPStorm(所有这些都已正常工作)如何在“vendor”中的composer插件上运行PHPUnit测试,在这种情况下是mikey179 / vfsStream?
我的项目结构如下:
myscripts/
vendor/
- mikey179
- vfsStream
composer.json
我想运行PHPUnit来测试vfsStream插件。
我能够在自己的测试代码(供应商目录外)上运行测试。
当我运行PHPUnit测试时(顶部有一个绿色的小按钮),我得到了以下内容:
usr/bin/php /tmp/ide-phpunit.php --bootstrap /path/to/project/vendor/autoload.php --configuration /path/to/project/vendor/mikey179/vfsStream/phpunit.xml.dist /path/to/project/vendor/mikey179/vfsStream
Testing started at 5:53 PM ...
PHPUnit 3.8-g8d770d8 by Sebastian Bergmann.
Configuration read from /path/to/project/vendor/mikey179/vfsStream/phpunit.xml.dist
Time: 2.22 seconds, Memory: 2.25Mb
No tests executed!
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /path/to/project/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php on line 127
PHP Stack trace:
PHP 1. {main}() /tmp/ide-phpunit.php:0
PHP 2. IDE_Base_PHPUnit_TextUI_Command::main() /tmp/ide-phpunit.php:506
PHP 3. PHPUnit_TextUI_Command->run() /tmp/ide-phpunit.php:268
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /path/to/project/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:173
PHP 5. PHP_CodeCoverage_Report_HTML->process() /path/to/project/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:465
PHP 6. date() /path/to/project/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php:127
Generating code coverage report in HTML format ... done
Process finished with exit code 0
答案 0 :(得分:0)
从我看到这是PhpStorm的帮助程序/包装程序脚本(/tmp/ide-phpunit.php
)的问题,它用于集成目的(跟踪测试实时进度 - 必须格式化消息具体方式;等)。
测试文件没有标准和预期的Test.php
结尾 - 而是他们有自定义TestCase.php
..并且帮助脚本似乎无法正确应用phpunit.xml.dist
文件中的配置选项(它将仅搜索*Test.php
个文件。)
如果您重命名所有*TestCase.php
文件为*Test.php
,它将开始在PhpStorm中工作(我已经重命名了一些......并且它们被检测到并执行了细)。
现在我可能只建议重命名测试文件,如上所述(如果您计划定期运行这些测试并继续下载该库的最新来源,那么从长远来看这不是一个好主意)或向PhpStorm问题追踪器提交错误机票解释情况:http://youtrack.jetbrains.com/issues/WI并希望开发人员能尽快修复它。
答案 1 :(得分:0)
您不对供应商/中的软件包进行测试。您可以克隆存储库,并按照测试文档中的说明进行操作。在mikey179 / vfsStream的情况下,有一个github存储库:https://github.com/bovigo/vfsStream,甚至还有一个.travis.yml文件,您可以阅读以获取启发:https://github.com/bovigo/vfsStream/blob/master/.travis.yml
如果您担心自己的vfsstream版本无法通过测试,则可以使用composer show mikey179/vfsStream
查看项目中安装的版本,然后在在运行测试之前进行回购。
原因是该软件包与您的项目可能完全具有不同的开发依赖关系,因此,无论您做什么,最终都会导致测试运行失败。 Composer会忽略除主项目以外的其他软件包的开发依赖关系。