PHPUnit 测试在 7.1 和 HHVM 中失败,但在 7.0 或 5.6 中失败
PHPUnit tests failing in 7.1 and HHVM but not 7.0 or 5.6
我的项目 运行 使用 PHP 5.6、7.0、7.1 就很好(我还没有尝试 运行 使用 nightly 或 HHVM 对其进行调试),这只是我的测试使用 PHP 7.1、nightly 和 HHVM 时全部失败。我使用 PHP 5.6 和 7.0 成功测试 运行。它们工作正常,直到我切换到对我的一个组件使用 Composer,这导致我的目录结构进行了一些调整。但鉴于它在某些 PHP 版本中工作得很好,而不是其他版本,我认为我没有一个简单的 "typo" 本身。这是 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
这是我需要工作的拉取请求的直接 link:https://github.com/dbudwin/RoboHome-Web/pull/45
在分支 F3Composer
的 composer.json
中,您缺少更新 autoload
部分的 psr-4
。您重构 class 的路径但不更新自动加载。所以改变你的自动加载如下:
composer.json
"autoload": {
"psr-4": {
"Models\":"app/models",
"Controllers\":"app/controllers"
}
},
重新运行 composer install
(重新生成自动加载器文件),测试套件将变为绿色。
希望对您有所帮助
我的项目 运行 使用 PHP 5.6、7.0、7.1 就很好(我还没有尝试 运行 使用 nightly 或 HHVM 对其进行调试),这只是我的测试使用 PHP 7.1、nightly 和 HHVM 时全部失败。我使用 PHP 5.6 和 7.0 成功测试 运行。它们工作正常,直到我切换到对我的一个组件使用 Composer,这导致我的目录结构进行了一些调整。但鉴于它在某些 PHP 版本中工作得很好,而不是其他版本,我认为我没有一个简单的 "typo" 本身。这是 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
这是我需要工作的拉取请求的直接 link:https://github.com/dbudwin/RoboHome-Web/pull/45
在分支 F3Composer
的 composer.json
中,您缺少更新 autoload
部分的 psr-4
。您重构 class 的路径但不更新自动加载。所以改变你的自动加载如下:
composer.json
"autoload": {
"psr-4": {
"Models\":"app/models",
"Controllers\":"app/controllers"
}
},
重新运行 composer install
(重新生成自动加载器文件),测试套件将变为绿色。
希望对您有所帮助