当前位置: 首页 > 知识库问答 >
问题:

在phpunit中找不到类

艾原
2023-03-14

我写了phpUnit测试。我使用以下命令运行它:

C:\ProgramFiles(x86)\Ampps\www\phpunit。dev\vendor\bin

但最终会出现以下错误:

PHP致命错误:在C:\Program Files(x86)\Ampps\www\phpunit中找不到类“Acme\SumFinder”。dev\tests\AcmeTests\SumFinderTest。php第15行

我从这些问题中尝试了几种解决方案:

  • 在composer和phpunit中找不到类“sample\question2\Hello”

但什么都不管用。可能是什么问题,我将如何解决它?谢谢!

我的目录结构:

  • phpunit。dev/src/Acme/SumFinder。php
  • phpunit。dev/tests/AcmeTests/SumFinderTest。php
  • phpunit。开发者/作曲家。json
  • phpunit。dev/phpunit。xml

我的作曲家。json是这样写的:

{
 "require-dev": {
 "phpunit/phpunit": "3.7.*"
},
 "autoload": {
   "psr-4": {
   "Acme\\": "./src/"
 }
},
 "autoload-dev": {
  "psr-4": {
  "AcmeTests\\": "./tests/"
  }
 }
}

我的Acme\SumFinder.php这样写的:

<?php 
 namespace Acme;
 class SumFinder {
  private $inputArray;
  function __construct($inputArray = null) { ... }
  function findSum() { ... }
  function compareArrays() { ... }
 }
?>

我的AcmeTests\SumFinderTest。php:

<?php 
  namespace AcmeTests;
  use Acme\SumFinder;

  class SumFinderTest extends \PHPUnit_Framework_TestCase
    function testFindSum() { ... }
    function testCompareArrays() { ... }
?>

我的朋友。xml配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<phpunit colors="true" bootstrap="./vendor/autoload.php">
  <testsuites>
  <testsuite name="First Test">
    <directory>./tests</directory>
  </testsuite>
</testsuites>

我正在使用Windows10和AMPPS堆栈,如果它可以帮助解决我的问题。


共有1个答案

方野
2023-03-14

一般的回答是:如果卸载优化的自动加载器解决了您的问题,而不优化它仍然会显示问题,那么您的目录或文件名中的某个地方有一个输入错误。

转储优化的自动加载程序将扫描在PSR-4或PSR-0自动加载所述目录中找到的所有文件,并使用找到的所有类名及其相应的文件名编写一个数组。如果您在路径中输入了一个拼写错误,则转储此数组会将类名连接到正确的文件路径,而不管是否有任何拼写错误。

请注意,一些文件系统(主要是Linux)区分大小写,其他文件系统(Windows)不区分大小写,并且这些情况与PSR-4和PSR-0相关,这将导致自动加载在不区分大小写的文件系统上工作,但在区分大小写的文件系统上不工作。

你的问题是,你提供的信息中没有任何一条明显暗示你做错了什么。但是,您可能已经重新键入了代码而没有出错,而您的原始代码在文件路径中仍然存在键入错误。再检查一遍。

 类似资料:
  • 我正在玩PHP 7和phpUnit 6。这是我写的测试: 当我尝试运行此测试时,收到以下错误消息: 我用composer安装了PHPUnit,这是我的composer。json文件内容: 根据phpunit6文档,您的测试现在应该扩展PHPUnit\Framework\TestCase而不是PHPUnit\u Framework\u TestCase。 我知道这不是自动加载的问题。实际上,如果我用

  • 我是PHPUnit和单元测试的新手,所以我通过作曲家安装了PHPUnit和phar,一切都很好,直到我尝试开始我的简单测试。我使用PhpStorm,我可以看到所有的类都是自动加载的,但是当我试图开始我的测试时,我得到了一个错误: 我不明白他为什么要在高于PHPUnit的文件夹中查找它? 我试图在composer中配置自动加载部分。json和检查phpunit中的设置。xml,但什么都不起作用。 加

  • 我的项目结构如下: composer.json如下: 如果我在不使用lib类的情况下运行测试,那么一切都会正常工作。但是(例如)如果我有 File1Test.php 我明白了: 有人知道问题出在哪里吗?

  • 我使用phpUnit与cakephp进行测试,但当我试图运行一些测试类抛出一个致命错误,但这个类插入正确,甚至没有被指控丢失文件错误的PHPStorm。 执行测试用例的命令: C:\xampp\htdocs\PROJETOS\购物\供应商\phpUnit 致命错误: 致命错误:在第12行的C:\xampp\htdocs\PROJET OS\Shopping\tests\TestCase\Model

  • 问题内容: 我正在尝试设置一个新的Continuous Integration服务器,该服务器利用Phing和PHPUnit自动运行测试用例。 我已经在Pear中安装了Phing: 我已经使用新的PHAR方法安装了PHPUnit: 然后,我进入build.xml文件所在的目录,梯级phing,看来Phing不知道PHPUnit在哪里。 检查了Phing和PHPUnit的位置: 并且,确保PHP是足

  • 运行时,我收到了这个错误 PHPUnit 7.5.12由Sebastian Bergmann和贡献者撰写。 ...W2 / 2 (100%) 时间:113毫秒,内存:12.00 MB 有一个警告: 1) 警告:在类中未找到任何测试 然后尝试将composer和php单元重新安装到当前版本 PHPUnit 7.5.12由Sebastian Bergmann和贡献者撰写。 ...W2 / 2 (100