【问题标题】:PHPUnit tests failing in 7.1 and HHVM but not 7.0 or 5.6PHPUnit 测试在 7.1 和 HHVM 中失败,但在 7.0 或 5.6 中失败
【发布时间】:2016-11-05 13:41:06
【问题描述】:

我的项目使用 PHP 5.6、7.0、7.1 运行良好(我没有尝试使用 nightly 或 HHVM 运行它),只是我的测试在使用 PHP 7.1、nightly 和 HHVM 时都失败了。我的测试使用 PHP 5.6 和 7.0 成功运行。他们工作得很好,直到我改用 Composer 作为我的一个组件,这导致我的目录结构进行了一些调整。但考虑到它在某些 PHP 版本中运行良好,而在其他版本中运行良好,我不认为我本身有一个简单的“错字”。这是 PHP 7.1 的潜在问题吗?我查看了 PHP 7.0 和 7.1 之间的更改日志,看看是否有关于命名空间或自动加载方面的突出内容,但我没有看到任何内容。

我正在使用 Travis CI 构建我的项目并运行我的测试。我尝试调试的结果可以在这里找到:https://travis-ci.org/dbudwin/RoboHome-Web/jobs/173488168

它们都导致无法找到类的相同错误,例如:

1) Tests\Models\DevicesModelTest::testAdd
Error: Class 'Models\DevicesModel' not found

这是我需要工作的拉取请求的直接链接:https://github.com/dbudwin/RoboHome-Web/pull/45

【问题讨论】:

  • 与 Xdebug v2.4.0 的 PHP 7.0.9 相同的问题。相同配置的master分支上没有问题。

标签: php phpunit travis-ci


【解决方案1】:

F3Composer 分支上的composer.json 中,您缺少更新autoload 部分的psr-4。您重构了类的路径,但不更新自动加载。所以改变你的自动加载如下:

composer.json

"autoload": {
    "psr-4": {
        "Models\\":"app/models",
        "Controllers\\":"app/controllers"
    }
},

重新运行composer install(重新生成自动加载器文件),测试套件将变为绿色。

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 2013-07-28
    • 1970-01-01
    • 2015-10-31
    • 2012-10-23
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    相关资源
    最近更新 更多