【发布时间】:2026-02-22 13:00:02
【问题描述】:
我刚刚通过 Composer 安装了 Sebastian Bergmann 的 PHPUnit 3.7.19 版,并编写了一个我想进行单元测试的类。
我希望将我的所有类自动加载到每个单元测试中而不必在我的测试顶部使用include 或require,但事实证明这很困难! p>
这是我的目录结构的样子(尾部的 / 斜杠表示目录,而不是文件):
- composer.json
- composer.lock
- composer.phar
- lib/
- returning.php
- 测试/
- returningTest.php
- 供应商/
- 斌/
- phpunit
- 作曲家/
- phpunit/
- symfony/
- 自动加载.php
- 斌/
我的 composer.json 文件包括以下内容:
"require": {
"phpunit/phpunit": "3.7.*",
"phpunit/phpunit-selenium": ">=1.2"
}
我的 returning.php 类文件包括以下内容:
<?php
class Returning {
public $var;
function __construct(){
$this->var = 1;
}
}
?>
我的 returningTest.php 测试文件包括以下内容:
<?php
class ReturningTest extends PHPUnit_Framework_TestCase
{
protected $obj = null;
protected function setUp()
{
$this->obj = new Returning;
}
public function testExample()
{
$this->assertEquals(1, $this->obj->var);
}
protected function tearDown()
{
}
}
?>
但是,当我从命令行运行 ./vendor/bin/phpunit tests 时,出现以下错误:
PHP 致命错误:未找到“返回”类 /files/code/php/db/tests/returningTest.php 在第 8 行
我注意到composer 在vendor/autoload.php 中生成了一个autoload.php 文件,但不确定这是否与我的问题有关。
此外,在 Stack Overflow 上的其他一些答案中,人们提到了在 composer 中使用 PSR-0 和在 PHP 中使用 namespace 命令,但我没有成功使用任何一个。
请帮忙!我只想在 PHPUnit 中自动加载我的类,这样我就可以使用它们来创建对象,而不必担心 include 或 require。
更新:2013 年 8 月 14 日
我现在创建了一个名为 PHPUnit Skeleton 的开源项目,以帮助您轻松地为您的项目启动和运行 PHPUnit 测试。
【问题讨论】:
-
感谢您将问题组织得很好。
标签: php namespaces phpunit autoload composer-php