Zub*_*r97 1 php testing macos phpunit
我正在尝试使用命令 ./vendor/bin/phpunit --filter=testNoImportFile 运行我的测试文件 ImportCSVTest.php
但我得到了错误
/usr/bin/php declares an invalid value for PHP_VERSION.
This breaks fundamental functionality such as version_compare().
Please use a different PHP interpreter.
Run Code Online (Sandbox Code Playgroud)
我的测试文件ImportCSVTest.php如下
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Http\UploadedFile;
use Tests\TestCase;
class ImportCSVTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testNoImportFile()
{
Storage::fake('products');
$response = $this->json('POST', '/import', [
'csv' => UploadedFile::fake()->create('emptyUpload', 0, null)
]);
Storage::disk('products')->assertMissing('emptyUpload');
}
}
Run Code Online (Sandbox Code Playgroud)
我第一次遇到这样的错误,如何解决这个问题?
PHPUnit 拒绝与 PHP 解释器一起运行,其中PHP_VERSION常量的值包含无效值,这是由于提供(二进制)PHP 发行版的供应商所做的修改。
7.3.24-(to be removed in future macOS)是这样一个无效的值。该-(to be removed in future macOS)后缀是由 Apple 添加的,Apple 是您使用的 PHP 解释器二进制文件的供应商。
这是一篇很好的文章,解释了背景。这是 PHPUnit 8.5.17 的 ChangeLog。这是 PHPUnit 9.5.6 的 ChangeLog。这些是 PHPUnit 的第一个版本,用于检查PHP_VERSION启动时的无效值。
TL;DR:不要使用 Apple 随 macOS 提供的 PHP 解释器。改用 Homebrew 或类似软件。