【发布时间】:2016-10-06 07:26:07
【问题描述】:
我已选择使用PHPUnit (phpunit-4.8.26.phar) 中的Phar 来对我自定义构建的 PHP 框架和应用程序进行单元测试。我使用旧的稳定版本的原因是因为我需要与PHP 5.4.29 兼容。
我选择不使用Composer 来获取PHPUnit 的原因是因为它倾向于用依赖项污染我的vendors 文件夹。我喜欢尽可能保持精简。
我正在使用Windows 7 Pro SP1、WampDeveloper v5.4.0.1、ProPhpStorm 2016.1.2、Phing 和一大堆其他很酷的东西来做我的事情。
问题
- 我可以在 PhpStorm 中成功运行通过单元测试。
- 我可以在 PhpStorm 中成功运行一组通过单元测试。
- 我无法在 PhpStorm 中成功运行失败的单元测试。
- 我 CAN 从命令行成功运行了通过的单元测试。
- 我CAN通过命令成功运行了一组通过单元测试。
- 我无法从命令行成功运行 FAILING 单元测试。
而不是 PHPUnit 显示典型的测试失败消息,它退出并出现以下错误:
警告:require(Composer\Autoload\ClassLoader.php):打开失败 流:中没有这样的文件或目录 D:\WampDeveloper\Websites\qclean.development\bootstrap\Autoloader.php 第 23 行
致命错误:require():无法打开所需的“Composer\Autoload\ClassLoader.php” (include_path='.;D:\WampDeveloper\Tools\PEAR\pear;D:\WampDeveloper\Tools\PEAR;D:\WampDeveloper\Components\Php\PEAR;D:\WampDeveloper\Tools\PHPMailer;') 在 D:\WampDeveloper\Websites\qclean.development\bootstrap\Autoloader.php 第 23 行
以及扩展上述内容的屏幕截图:
支持信息
我的目录结构:
我的单元测试脚本('ConfigurationTest.php'):
我的 PHPUnit XML 配置文件('TestAll.xml'):
最后是我的自动加载器('Autoloader.php'):
错误和警告表明无法加载Composer\Autoload\ClassLoader.php 文件。我不明白为什么当我使用Phar 时它会要求这个文件?从 Internet 上读取 sn-ps 表明 Phar 应该有一个内部自动加载器,尽管我看不到它。
我不想安装Composer 只是为了让它成为自动加载器。这将破坏试图单独使用 Phar 的目的。
我将PHPUnit Phar 路径添加到我的Windows %path%,但这并没有什么区别。我知道如果 PHPUnit 是使用 PEAR 安装的,应该这样做。
任何关于“拔毛问题”的帮助将不胜感激......
【问题讨论】:
-
总是发布代码,而不是它的图像
-
“我选择不使用 Composer 来获取 PHPUnit 的原因是因为它往往会污染我的供应商文件夹的依赖项。我喜欢让它尽可能精简”。这就是为什么作曲家允许要求某些依赖项为
dev。在生产中部署时,您执行composer install --no-dev,因此只安装生产代码所需的依赖项。 -
@Christian Giupponi。是的,你是对的。我的 foobar。