使用 phpunit 9.5 捕获警告、通知和弃用

2024-04-25

Quoting https://phpunit.readthedocs.io/en/9.5/writing-tests-for-phpunit.html#testing-php-errors-warnings-and-notices https://phpunit.readthedocs.io/en/9.5/writing-tests-for-phpunit.html#testing-php-errors-warnings-and-notices , "默认情况下,PHPUnit 将测试执行期间触发的 PHP 错误、警告和通知转换为异常“。考虑到这一点,这是我的单元测试:

<?php

class DemoTest extends PHPUnit\Framework\TestCase
{
    public function testDemo()
    {
        try {
            trigger_error('zzz', E_USER_DEPRECATED);
        } catch (\Throwable $e) {}
    }
}

当我跑步时vendor/bin/phpunit使用 PHPUnit 9.5.10(在 PHP 8.0.9 或 PHP 8.1.0 上)我得到以下信息:

PHPUnit 9.5.10 by Sebastian Bergmann and contributors.

R                                                                   1 / 1 (100%)
Deprecated: zzz in C:\path\to\code\tests\DemoTest.php on line 8


Time: 00:00.007, Memory: 6.00 MB

There was 1 risky test:

1) DemoTest::testDemo
This test did not perform any assertions

C:\path\to\code\tests\DemoTest.php:5

OK, but incomplete, skipped, or risky tests!
Tests: 1, Assertions: 0, Risky: 1.

我不想在输出中看到错误,如果没有抛出异常,那么$this->expectException('PHPUnit\\Framework\\Error\\Deprecated')不会为我工作。

有任何想法吗?


In the 9.5.10 的变更日志 https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md#9510---2021-09-25据称:

默认情况下,PHPUnit 不再将 PHP 弃用转换为异常(配置convertDeprecationsToExceptions =“true”以启用此功能)

所以这是预料之中的。从技术上讲,人们甚至可以认为有关“错误、警告和通知”的声明是正确的,因为弃用是它们自己的类别。

您通常将其配置为XML配置文件 https://phpunit.readthedocs.io/en/9.5/configuration.html,提供有-c.

另请注意文档页面上有关error_reportingini/运行时设置:它也不能排除弃用(E_ALL很好)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 phpunit 9.5 捕获警告、通知和弃用 的相关文章

  • Laravel:PHPUnit 导致所有内容出现 404

    我正在尝试使用 PHPUnit 为我的 Laravel 应用程序运行一些基本的单元测试 然而 所有 HTTP 请求都会返回 404 not find HTTP 状态代码 因此我们在第一个障碍上失败了 在互联网上搜寻后 我找到了有关如何解决此
  • symfony 单元测试:添加/修改表单操作

    我有一个没有操作的表单 用 javascript 提交 我试图为其编写一个单元测试 但它失败了 因为缺少 action 属性 InvalidArgumentException 当前 URI 必须是绝对 URL 有没有办法在单元测试中添加它或
  • 使用 PHPUnit 测试 PHP 标头

    我正在尝试使用 PHPunit 来测试输出一些自定义标头的类 问题是在我的机器上
  • Laravel 4 测试; “phpunit”无法识别?

    http four laravel com docs testing http four laravel com docs testing说 安装新的 Laravel 应用程序后 只需运行phpunit在命令行上运行测试 phpunit无法
  • PHPUnit - getallheaders 不起作用

    我正在测试我的代码 并且标头有一些问题 在我使用的每个 api 中 headers getallheaders 为了实现这一点 当我使用应用程序或 chrome postman 扩展进行测试时 效果很好 当我启动测试时 像这样 client
  • 跳过 Laravel 的 FormRequest 验证

    我最近添加了已被攻击 https github com valorin pwned validator到我的表单请求类来检查破解的密码 鉴于这会进行外部 API 调用 有没有办法让我在测试期间完全跳过此验证规则或 FormRequest 类
  • PHPUnit 找不到“TestCase”类

    要使用项目的 PHPUnit 运行测试 我执行以下操作 php vendor bin phpunit tests SomeClassTest php鉴于以下类声明 它可以正常工作 class SomeClassTest extends PH
  • PHPUnit 没有捕获预期的异常

    我有一组测试 我想测试我的类是否在正确的时间抛出异常 在示例中 我的类使用 get 魔术方法 因此我需要测试检索无效属性时是否引发异常 function testExceptionThrownWhenGettingInvalidProper
  • phpunit 测试类未找到错误,而类存在?

    这是我的目录结构 application modules admin models User php 这是我的用户模型类 class admin Model User User php 这是我的 UserTest 类 带有简单的 Asser
  • Selenium2 + phpunit -> 拖放到 xpath 上

    我使用 PHPUnit Extensions Selenium2TestCase Selenium 和 phpunit 我需要在不同的 emelent 上拖放一个 xpath 元素 就像在此屏幕上一样 更改树 类别树 上的位置 srcDra
  • 在 PHPUnit 中进行模拟时,通过回调中的引用传递

    我有一个想要模拟的接口 并模拟其方法之一的行为 所以我创建了一个回调来非常简单地模拟行为 如果我创建一个基于此接口的新对象 但我想模拟该接口 则此测试通过 模拟的 setUp 方法被正常调用 并且在回调中调用 getVar testing
  • PHPstorm PHPunit 代码共同覆盖

    当我在 PHPstorm 中运行测试套件时 所有代码覆盖率都为 0 我知道这不是真的 当我从命令行运行 PHPunit 时 记录的 HTML 输出文档显示我实际上确实有覆盖率并列出所有详细信息 在 PHPstorm 中 我将 PHP 解释器
  • 如何在 PHPUnit 中重复测试?

    我知道 repeat 选项 但我宁愿在测试中和每个测试中定义重复 在我的单元测试中 有些测试我不想重复 有些测试我比其他测试更想重复 我刚在想 protected function tearDown if test has not been
  • 使用 phpunit 9.5 捕获警告、通知和弃用

    Quoting https phpunit readthedocs io en 9 5 writing tests for phpunit html testing php errors warnings and notices https
  • 在 phpunit 中 __construct 与 setup 之间有什么区别?

    我很想知道在测试类 construct 中创建对象是一种很好的做法 或者我们应该始终使用 setup teardown 方法 或 setUpBeforeClass tearDown AfterClass 方法 我知道每个测试都会调用 set
  • Selenium RC:如何检查元素是否具有给定属性?

    我有一些带有onclick属性和一些没有属性 我想检查指定的元素是否具有onclick属性 我怎样才能做到这一点 getAttribute 当有属性值时返回该属性值 如果没有 它会抛出 RuntimeException 并停止测试 即使我将
  • (PHP):使用 Zend_Test_PHPUnit_DatabaseTestCase 测试模型

    当我运行 PHP 单元测试时 我得到 1 Test Model Mapper TestTest testTest Argument 1 passed to PHPUnit Extensions Database DataSet Defaul
  • 如何对 Laravel Mailable 进行断言

    在测试中 我想使用以下方法对 Mailable 做出一些断言Mail assertSent 像这样 Mail assertSent MyMailable class function mail use user return mail gt
  • 对需要发送标头的项目进行单元测试

    我目前正在与 PHPUnit 合作 尝试在我正在编写的内容的同时开发测试 但是 我目前正在编写会话管理器 并且在这样做时遇到了问题 Session 处理类的构造函数是 private function construct if header
  • 如何使用 phpunit 测试内部数组

    我必须测试带有内部数组的数组 我的数组如下所示 testdata Array 0 gt Array label gt Ammy idr gt user7 rel gt 7 1 gt Array label gt sidh idr gt us

随机推荐