找不到Trait PHPUnit\DbUnit\TestCaseTrait?

找不到Trait PHPUnit\DbUnit\TestCaseTrait?,php,phpunit,php-7.1,Php,Phpunit,Php 7.1,在升级到PHP7.1.2和PHPUnit 6.0.8(分别从源代码编译并下载了phar)之后,我以前扩展PHPUnit_Extensions_Database_测试用例的测试不再有效,似乎()我应该使用traits来代替 因此,使用类声明运行我的测试,如下所示: class FooTest extends PHPUnit_Extensions_Database_TestCase 用于工作,但更改为: use PHPUnit\Framework\TestCase; use PHPUnit\DbU

在升级到PHP7.1.2和PHPUnit 6.0.8(分别从源代码编译并下载了phar)之后,我以前扩展PHPUnit_Extensions_Database_测试用例的测试不再有效,似乎()我应该使用traits来代替

因此,使用类声明运行我的测试,如下所示:

class FooTest extends PHPUnit_Extensions_Database_TestCase
用于工作,但更改为:

use PHPUnit\Framework\TestCase;
use PHPUnit\DbUnit\TestCaseTrait;

class FooTest extends TestCase
{
    use TestCaseTrait;
导致以下错误:

Fatal error: Trait 'PHPUnit\DbUnit\TestCaseTrait' not found in /path/to/FooTest.php on line 17

我在这里遗漏了什么?

您遗漏了一个事实,即从第6版开始,DbUnit不再捆绑在PHPUnit的PHAR发行版中(请参阅)


请查看有关如何立即使用DbUnit的信息。

您缺少一个事实,即自版本6起,PHPUnit的PHAR发行版中不再捆绑DbUnit(请参阅)


现在查看有关如何使用DbUnit的信息。

如果您在PHP5.6(DbUnit 1.3)中遇到此问题,请

而不是

use TestCaseTrait;

如果您在PHP5.6(DbUnit 1.3)中遇到此问题,请

而不是

use TestCaseTrait;

就这样。文档需要更新,他们仍然说“phar包含您需要的所有依赖项。”(哇!Sebastian Bergmann回答了!)我将为需要更新的页面打开github票证。嗯,DbUnit不是必需的依赖项。如果DbUnit不是一个必需的依赖项,那么建议替代方案:另一个库,其他什么?(它是必需的,但不是依赖项)TL;医生:没有(官方)替代品。这里可以找到更长的讨论:就是这样。文档需要更新,他们仍然说“phar包含您需要的所有依赖项。”(哇!Sebastian Bergmann回答了!)我将为需要更新的页面打开github票证。嗯,DbUnit不是必需的依赖项。如果DbUnit不是一个必需的依赖项,那么建议替代方案:另一个库,其他什么?(它是必需的,但不是依赖项)TL;医生:没有(官方)替代品。这里可以找到一个较长的讨论:这是不正确的(或者至少是非常过时的)。当前版本的正确使用语句是
use PHPUnit\DbUnit\TestCaseTrait。您可能还应该阅读前面的答案。PHPUnit和DBUnit的作者已经回答了上述问题。另请参见:我知道,我使用PHP5.6,而作者的答案并没有解决我的问题。第一次没有提到PHP的版本是我的错。但也许另一个人也在维护一个过时的项目,他也可能会遇到这个问题。删除否决票是因为这是一个合理的选择。然而,应该注意的是,在撰写本文时,PHP 5.6在1年8个月前失去了主动支持,并将在3个月后(2018年12月)失去安全更新。PHPUnit很久以前就失去了对该评论中提到的版本的支持。参考:这是不正确的(或者至少是非常过时的)。当前版本的正确使用语句是
use PHPUnit\DbUnit\TestCaseTrait。您可能还应该阅读前面的答案。PHPUnit和DBUnit的作者已经回答了上述问题。另请参见:我知道,我使用PHP5.6,而作者的答案并没有解决我的问题。第一次没有提到PHP的版本是我的错。但也许另一个人也在维护一个过时的项目,他也可能会遇到这个问题。删除否决票是因为这是一个合理的选择。然而,应该注意的是,在撰写本文时,PHP 5.6在1年8个月前失去了主动支持,并将在3个月后(2018年12月)失去安全更新。PHPUnit很久以前就失去了对该评论中提到的版本的支持。参考: