phpunit 相关问题

PHPUnit是面向程序员的PHP测试框架。它是单元测试框架的xUnit体系结构的一个实例。

运行 PHPUnit 而不是 Pest

我有一个项目,混合了用 Pest 和常规 PHPUnit 测试类编写的测试。 Pest 开发人员缺少很多东西,在 Pest Ca 的领域使用 PHPunit 更简单......

回答 1 投票 0

PHPUnit - REST API 测试

我有用php编写的REST API,我想用phpunit测试它。 我这样写了测试,它有效,但响应正文为空。我用 fiddler 测试了它,它发送响应正文。 对不起我的英语...

回答 3 投票 0

无法创建名为“Laminas\Session\Config\ConfigInterface”的服务

我目前正在开发 PHP Laminas 应用程序。我是 Laminas 和 PHPUnit 的新手。该应用程序在 Web 模式(apache 和开发服务器)下正常工作。我正在添加最近的单元测试...

回答 1 投票 0

phpunit 测试 - 验证由非布尔值和无效值填充的存储布尔字段

抱歉我的英语不好:)。 当用户输入非布尔值(例如,来自浏览器检查)时,我想测试布尔字段验证错误。 例如,如果在浏览器检查中,我设置 '

回答 1 投票 0

Symfony 6.3:html_sanitizer 范围服务

我想调用 phpunit KernelTestCase setUp 方法,即服务容器中的 html_sanitizer 服务。 公共函数setUp():无效 { 父级::setUp(); // TODO: 更改

回答 1 投票 0

调用返回后,PHP 是否会垃圾收集函数范围内的对象?

我知道一旦脚本结束,所有对象都会被销毁并返回内存。一旦函数结束且无论如何都无法访问的函数范围对象是否也会发生这种情况? 例如...

回答 1 投票 0

PHPUnit:如何在 Symfony 中正确测试缓存

我有一个方法可以从缓存获取信息或(如果缓存为空)向第三方服务发出长请求。我想测试我的方法来检查数据是否来自外部的缓存...

回答 1 投票 0

未找到 PHP 单元类“PHPUnit\Metadata\Api\DataProvider”[带有重现案例]

我已经通过composer安装了php单元并编写了一个简单的单元测试文件(它实际上来自phpunit的示例) 我已经通过composer安装了php单元并编写了一个简单的单元测试文件(它实际上来自phpunit的示例) <?php declare(strict_types=1); use PHPUnit\Framework\TestCase; final class CheckFreeSeatsTest extends TestCase { public function testCanBeCreatedFromValidEmail(): void { $this->assertSame("foo", "foo"); } } 没什么可写的 每次执行测试文件时,我都会得到一个 An error occurred inside PHPUnit. Message: Class "PHPUnit\Metadata\Api\DataProvider" not found Location: C:\www\vendor\phpunit\phpunit\src\Framework\TestBuilder.php:38 #0 C:\www\vendor\phpunit\phpunit\src\Framework\TestSuite.php(477): PHPUnit\Framework\TestBuilder->build(Object(ReflectionClass), 'testCanBeCreate...') 我已经执行了composer update,composer dumpautoload --dev,通过了--bootstrap=vendor/autoload.php等 无论出于何种原因,autoload.php(准确地说是autoload_static.php)缺少PHPUnit\Metadata\Api\DataProvider(甚至更多)的映射 有人可以检查他或她的自动加载文件是否包含“DataProvider.php”吗? 例如,这些是在任何 autoload_*.php 文件中找到的唯一元数据 'PHPUnit\\Metadata\\UsesFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesFunction.php', 'PHPUnit\\Metadata\\Version\\ComparisonRequirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php', 'PHPUnit\\Metadata\\Version\\ConstraintRequirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/ConstraintRequirement.php', 'PHPUnit\\Metadata\\Version\\Requirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/Requirement.php', 更多信息:我自己不使用 DataProvider,TestBuilder.php 正在创建一个,但它依赖于自动加载的数据,这似乎没有被创建。 任何关于这方面的提示都会很棒。 重现案例 这里是 docker Linux 容器设置的 Windows powershell 重现案例,完全复制了该问题。只需将其放入空目录并执行即可。 Set-StrictMode -Version 3 $outDir = "$PSScriptRoot/out_dir" if(Test-Path $outDir) { Remove-Item -Force -Recurse $outDir | Out-Null } New-Item -ItemType Directory $outDir | Out-Null @' { "name": "root/app", "require-dev": { "phpunit/phpunit": "^10" } } '@ | Out-File $outDir\composer.json -Encoding ascii docker run --volume "$($outDir):/app" --rm -it composer/composer composer update @' <?php declare(strict_types=1); use PHPUnit\Framework\TestCase; final class EmailTest extends TestCase { public function testCanBeCreatedFromValidEmail(): void { $this->assertSame("foo", "foo"); } } '@ | Out-File $outDir\EmailTest.php -Encoding ascii docker run --volume "$($outDir):/app" --rm -it composer/composer ./vendor/bin/phpunit EmailTest.php 我最近在 laravel 10 上遇到了同样的问题,但我通过将“phpunit”版本降级到“10.0.1”来修复它。 我将此记录为 github 上 phpunit 的问题。 它已被关闭,因为不是一个问题,但线程中的评论值得阅读,并提供降级的替代解决方案 https://github.com/sebastianbergmann/phpunit/issues/5477 a) 使用基于类映射的自动加载 b) 添加 psr-4 类加载解决方法 "autoload-dev": { "psr-4": { "PHPUnit\\Metadata\\": "vendor/phpunit/phpunit/src/Metadata", "PHPUnit\\Metadata\\Annotation\\Parser\\": "vendor/phpunit/phpunit/src/Metadata/Parser/Annotation" } }

回答 2 投票 0

用内容模拟上传的文件

我正在开发一个 Laravel 项目,该项目使用 GraphQL 和 Lighthouse 作为后端 API。 对于某些端点,我们提供文件上传支持。我们已经成功地测试了这一点。 新的终点

回答 2 投票 0

PHPUnit,来自 Symfony:如何在 Laravel 中正确测试缓存

我有一个方法可以从缓存获取信息或(如果缓存为空)向第三方服务发出长请求。我想测试我的方法来检查数据是否来自外部的缓存...

回答 1 投票 0

如何为使用 GDImage imagecreatefromstring 的函数编写 phpunit 测试

我正在为使用 GD 库创建图像的服务编写测试。在正常操作下,该方法运行以下内容不会出现问题: imagecreatefromstring($this->imagick->getIma...

回答 1 投票 0

phpunit模拟方法使用不同参数多次调用

有没有办法为不同的输入参数定义不同的模拟期望?例如,我有一个名为 DB 的数据库层类。这个类有一个名为“Query ( string $query )”的方法,满足...

回答 6 投票 0

包括要使用 PHPUnit 进行测试的 Fixture 文件

我正在开发一个 Laravel 包,一些类是由包通过控制台命令生成的 - 即它们不存在于包本身中,但将被创建并放置在用户 app/M 中...

回答 1 投票 0

致命错误 - 打开文件太多

我尝试在我的新机器上运行 PHPUnit 测试,但收到此错误: PHP 致命错误:未捕获异常“UnexpectedValueException”,消息为“RecursiveDirectoryIterator::__construct(/usr/lib/...

回答 10 投票 0

PHPUnit - 服务类是私有的,您无法替换它

在我的 PHPUnit 测试中,我有私人课程: $fakePayStubViewManager = $this->prophesize(PayStubViewManager::class); $this->client->getContainer()->set(PayStubViewManager::class, $

回答 1 投票 0

php artisan 测试立即失败

命令 php artisan test 立即失败并抛出错误 初始化之前不得访问类型化属性 DOMDocument::$documentElement 我没有改变任何东西...

回答 1 投票 0

如何使用 Pest 测试 Laravel 中的代码是否可以在生产环境中运行?

我在 Laravel 项目中有一个中间件,可以在哨兵中触发一些警报 $status = $response->status(); if ($status === 500 && config('app.env') === '生产') { \...

回答 1 投票 0

如何为使用静态变量和构造函数从库中调用类的代码编写单元测试?

我正在为一些遗留代码编写一些单元测试,作为重构的准备。代码的一部分是从库中调用一个类,我无法更改其中的代码。代码是你...

回答 1 投票 0

Behat 可以与 PHPUnit 集成吗?

我一直在建立 Behat,以便促进 BDD 作为我公司的测试框架。要求还将其与 PHPUnit 合并,以便获得该平台的优势,

回答 1 投票 0

如何在 Phpunit 的静态提供程序中创建测试双打?

Phpunit 10 已弃用非静态测试提供程序。这使得在提供程序内创建测试双精度成为问题,因为像 createMock() 或 createStub() 这样的方法不是静态的。这是一个

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.