未找到 PHPUnit 类 TestCase

新手上路,请多包涵

我正在创建一个 PHP 库并想开始编写测试。我收到错误 Fatal error: Class 'PHPUnit\Framework\TestCase' not found

我的项目结构是:在我的主目录中,我有 composer.json,一个包含我所有类的 src/ 目录,一个包含 unit/ 和 acceptance/ 子目录的 tests/ 目录。我尝试运行的测试位于 unit/ 目录中。我正在使用命令行界面运行测试,因此运行时会发生错误 phpunit tests/unit/testMyClass.php

testMyClass.php 看起来像:

 <?php
require 'vendor/autoload.php';
use PHPUnit\Framework\TestCase;

class MyClassTest extends TestCase {
    public function testCreateMyClass() {
        // Tests are written here
    }
}
?>

我的 composer.json 是:

 {
    "require-dev": {
        "phpunit/phpunit": "4.8.*"
    }
    "autoload": {
        "classmap": [
            "src/"
        }
    }
}

原文由 Derek Spaulding 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 878
2 个回答

我遇到了同样的问题,我通过从 PHPUnit_Framework_TestCase 类扩展我的测试类而不是使用 命名空间 PHPUnit\Framework\TestCase 来解决它。重建您的项目结构后,它对我来说效果很好。

测试/单元/testMyClass.php

 <?php
require './vendor/autoload.php';

class MyClassTest extends PHPUnit_Framework_TestCase {
     public function testCreateMyClass() {
        // Tests are written here
     }
}
?>

作曲家.json

 {
   "name": "root/project",
   "authors": [
      {
           "name": "watzerm",
           "email": "some.email@provider.at"
      }
   ],
   "require": {
       "phpunit/phpunit": "5.4.*"
   },
   "autoload": {
       "classmap": [
           "src/"
       ]
   }
}

结果

$./vendor/bin/phpunit tests/unit/testMyClass.php

PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

.

Time: 252 ms, Memory: 2.25MB

OK (1 test, 0 assertions)

如果这也适合您,请告诉我!

原文由 mwatzer 发布,翻译遵循 CC BY-SA 4.0 许可协议

我用较新版本的 PHPUnit 解决了这个问题:

 wget https://phar.phpunit.de/phpunit-6.0.phar
php phpunit-6.0.phar -c app/

输出:

 PHPUnit 6.0.10 by Sebastian Bergmann and contributors.

..                                                                  2 / 2 (100%)

Time: 486 ms, Memory: 14.00MB

OK (2 tests, 3 assertions)

这适用于 Symfony 2.8 LTS 和 PHPunit 6.0 github repo - https://github.com/nikola-bodrozic/PHPUnit-Symfony28

原文由 Nikola Bodrozic 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏