找不到类'PHPUnit_Framework_TestCase'

Joa*_*aes 10 travis-ci

我的公共构建项目发生此错误:https://travis-ci.org/byjg/authuser/jobs/211336643

我在我的Ubuntu上使用php 7.0和php 7.1本地运行,这个问题不会发生.

Travis在PHP 5.6上运行成功

你可以帮帮我吗?

Rob*_*son 17

名称空间结构在PHPUnit<6和PHPUnit6 之间存在差异.

您可以考虑以下解决方案以实现向后兼容:

// backward compatibility
if (!class_exists('\PHPUnit\Framework\TestCase') &&
    class_exists('\PHPUnit_Framework_TestCase')) {
    class_alias('\PHPUnit_Framework_TestCase', '\PHPUnit\Framework\TestCase');
}
Run Code Online (Sandbox Code Playgroud)

PHPUnit版本使用\PHPUnit_Framework_TestCase但新版本使用\PHPUnit\Framework\TestCase.通过应用向后兼容性,您可以使用与新版本PHPUnit(即\PHPUnit\Framework\TestCase)兼容的类名,并且它也适用于旧版本.

更新 为了支持PHP 5.3,您必须\在别名类之前删除一个字符,即

class_alias('\PHPUnit_Framework_TestCase', 'PHPUnit\Framework\TestCase');
Run Code Online (Sandbox Code Playgroud)

  • @ chris342423我已经更新了我的答案.有一个关于PHP 5.3的说明. (3认同)
  • 我已经更新了我的测试脚本,是的,我可以确认你的想法是有效的.感谢更新! (2认同)