首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHPUnit中使用命名空间时“找不到类”

在PHPUnit中使用命名空间时“找不到类”
EN

Stack Overflow用户
提问于 2013-03-30 21:53:27
回答 4查看 30.7K关注 0票数 22

我刚接触PHPUnit,在设置它来访问我的PHP文件时遇到了一些麻烦。我的应用程序使用的目录结构是这样的:

./phpunit.xml

./lib/Application/
  -> Dir1/File1.php (namespace = Application\Dir1)
  -> Dir1/File2.php
  -> Dir2/File1.php (namespace = Application\Dir2)

./tests/Application/Tests
  -> Test1.php (namespace = Application\Tests)
  -> Test2.php 

在我的PhpUnit.xml中,我有:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit verbose="false">
  <testsuites>
      <testsuite name="Application">
          <directory>./tests/Application/Tests</directory>
      </testsuite>
  </testsuites>
  <logging>
       <log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
       <log type="json" target="/tmp/phpunit-logfile.json"/>
  </logging>
  <filter>
        <whitelist>
            <directory suffix=".php">./lib</directory>
        </whitelist>
  </filter>
</phpunit>

在我的一个测试文件中,我打开了:

namespace Application\Tests;

use Application\Dir1\File1;

class MyTest extends File1 {}

但它一直在说:

找不到

类“Application\Dir1\File1”

我哪里错了?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-30 22:15:53

即使您使用use,您仍然必须使用includerequireinclude_oncerequire_once包含文件,或者使用spl_autoload_register包含文件,如下所示:

spl_autoload_register(function ($class)
{
    include '\lib\\' . $class . 'php';
});

然后,当您尝试使用Application\Dir1\File1时,脚本将自动运行include '\lib\Application\Dir1\File1.php'

票数 5
EN

Stack Overflow用户

发布于 2014-05-01 05:13:47

如果你使用Composer安装了PHPUnit,那么你可以使用Composers自动加载器。最简单的方法是添加:

"autoload":{
    "psr-0":{
        "your-app-directory":""
    }
}

转到composer.json

票数 27
EN

Stack Overflow用户

发布于 2019-02-25 16:11:45

我也有同样的问题。我也在使用composer,唯一能解决这个问题的方法是:

  1. 将带有根命名空间的类映射部分添加到composer.json文件的自动加载部分中

" autoload ":{ "classmap":"namespaceRoot/“}

  • 执行composer dump-autoload命令以重新创建自动加载文件(包含所有类映射!)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15719293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档