【发布时间】:2017-03-05 23:14:40
【问题描述】:
所以我使用 composer 全局安装了 phpunit。但是我想在一个也使用composer的项目中使用它,但是没有安装phpunit(这样做的原因很无聊)。
所以我运行下面的第一个测试并得到错误。
Fatal error: Class 'PHPUnit\Framework\TestCase' not found in /vagrant/sites/core/trunk/Notify/php/tests/MyFirstTest.php on line 5
我认为加载全局作曲家自动加载器会让 phpunit 在全局作曲家目录中查找 phpunit 类,但它似乎无法找到它。我猜它将 $vendorDir (如下)设置为本地作曲家目录而不是全局目录。有没有办法让它同时检查?
这是来自 /home/vagrant/.composer/vendor/composer/autoload_classmap.php 的行,显示该类位于全局自动加载类映射中。
'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
这是我用来启动进程的命令行。
phpunit --bootstrap tests/bootstrap.php tests/MyFirstTest.php
这里是 MyFirstTest.php
<?php
use PHPUnit\Framework\TestCase;
class MyFirstTest extends TestCase {
public function testOneIsOne() {
$this->assertEquals(1, 1);
}
}
这是我加载全局 phpunit 自动加载器的 bootstrap.php。
<?php
require_once('/home/vagrant/.composer/vendor/autoload.php');
写出这个问题有助于澄清我的想法。如果有人有一个很好的解决方案,那就太好了。我开始认为我应该在本地安装 phpunit。
为任何建议干杯。
【问题讨论】:
-
我想不出任何不将 phpunit 添加到
composer.lock文件的require-dev部分的充分理由。只需为您的项目安装它。
标签: php phpunit composer-php autoloader