【问题标题】:PHPunit - Missing class, although autoload.php is loadedPHPunit - 缺少类,尽管加载了 autoload.php
【发布时间】:2014-08-04 19:57:57
【问题描述】:

我有以下文件结构:

  • 包括
    • class.Klasse.php
    • 自动加载.php
  • 测试
    • KlasseTest.php

此结构位于项目文件夹中。在 linux shell 上,在这个文件夹中,我输入以下命令行:

phpunit --bootstrap src/autoload.php tests/KlasseTest.php

命令行向我显示了这个:

PHPUnit 4.1.4 by Sebastian Bergmann.

PHP Fatal error:  Class 'Klasse' not found in /home/doug/workspace/PHPunit/tests/KlasseTest.php on line 7

我的 autload.php:

<?php
function __autoload($class_name) {
   include 'includes/class.' . $class_name . '.php';
}

我的 KlasseTest.php:

<?php
class KlasseTest extends PHPUnit_Framework_TestCase {
  public function testWertvergleich() {
    $o = new Klasse();
  }
}

我的班级.Klasse.php:

<?php
class Klasse {
  public function __construct() {

  }
}

我不知道为什么我会收到上面的消息。

【问题讨论】:

  • 我遇到了同样的问题。真希望这有一个答案。你想清楚了吗?

标签: phpunit autoload bootstrapping


【解决方案1】:

src/autoload.php 中,使用:

function __autoload($class_name) {
    include __DIR__ . '/../includes/class.' . $class_name . '.php';
}

自动加载器在相对于 autoload.php 文件位置的目录中搜索类。 __DIR__ 确保文件包含的起点始终是 autoload.php 的目录 - 从那里,您向上移动一个目录 (/..),然后在 includes 目录内。

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    相关资源
    最近更新 更多