yii2框架基于codeception进行Unit单元测试

可通过官网地址codeception.com/docs/UnitTe...进行学习,官网说得很清楚,本文只是学习记录,友情提示:结合GPT高效学习。

准备工作

1、安装 Codeception:您可以使用 Composer 在项目中安装 Codeception。在终端中进入项目根目录,然后运行以下命令:

lua 复制代码
composer require "codeception/codeception" --dev

2、初始化测试套件:在项目根目录中,使用以下命令初始化测试套件:

bash 复制代码
vendor/bin/codecept bootstrap

这会创建一个 tests 目录,并在其中创建一些默认的测试文件和配置文件。

3、配置测试套件:您需要根据您的项目需求配置测试套件。在 tests 目录中,有一个名为 codeception.yml 的配置文件,其中包含了测试套件的配置信息。您可以根据需要修改该文件。

一旦您完成了上述准备工作,就可以执行 php vendor/bin/codecept build 命令来构建测试套件了。该命令将根据测试套件的配置信息生成测试文件和测试类,并将其保存在 tests/_support 目录中。

单元测试配置

unit.suite.yml 是 Codeception 单元测试套件的配置文件,它定义了单元测试套件的各种设置和参数。

yaml 复制代码
# Codeception Test Suite Configuration

# suite for unit (internal) tests.
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.

class_name: UnitTester
modules:
    enabled:
      - Asserts
      - Yii2:
            part: [orm, email, logger]

modules: 定义单元测试套件使用的模块。例如,Asserts 模块提供了各种断言方法,Db 模块提供了数据库操作方法等。

执行 php vendor/bin/codecept build 命令可以生成测试运行所需的自动加载文件和其他必要的文件。这个命令会根据 unit.suite.yml 文件中的配置生成一些必要的文件,例如测试类的自动加载文件、测试结果输出目录等。如果没有执行这个命令,可能会导致测试运行失败或者出现其他问题。因此,在运行单元测试之前,建议先执行 php vendor/bin/codecept build 命令,以确保测试环境的正确设置。

执行 php vendor/bin/codecept build 命令会生成 tests/_support/_generated/UnitTesterActions.php 文件,其中包含了所有模块中定义的测试步骤方法。这个文件会被自动加载到测试运行环境中,以便在测试中使用这些测试步骤方法。

需要注意的是,如果你修改了模块中的测试步骤方法,需要重新执行 php vendor/bin/codecept build 命令来更新 UnitTesterActions.php 文件,否则修改后的测试步骤方法将不会生效。

更多modules可查看官方链接https://codeception.com/docs/ModulesAndHelpers

单元测试脚本开发

使用 generate:test 命令创建测试,并将套件和测试名称作为参数:

bash 复制代码
php vendor/bin/codecept generate:test Unit Example

生成ExampleTest.php文件,文件内容:

php 复制代码
<?php

namespace Tests\Unit;

use \Tests\Support\UnitTester;

class ExampleTest extends \Codeception\Test\Unit
{
    protected UnitTester $tester;

    protected function _before()
    {
    }

    // tests
    public function testMe()
    {

    }
}

执行以下命令即可运行单元测试:(注意Unit大小写)

arduino 复制代码
php vendor/bin/codecept run Unit

或者

php vendor/bin/codecept run Unit ExampleTest

输出报告

css 复制代码
php vendor/bin/codecept run Unit --debug --html 

执行run 可配置输出报告参数,官网链接查看codeception.com/docs/Report...

清晰的报告提供了系统当前状态的全貌。哪些测试通过了,哪些测试失败了,如果失败的原因是什么。报告的详细程度和收集的技术信息各不相同。Codeception 提供内置报告器和可定制的 API,以便创建自己的报告器。

比如我经常使用的,可查看代码执行过程中你程序输出的埋点日志,比如Yii框架就是Yii:info("this is a info");最后还有一个html的测试结果报告,一般报告文件路径在tests/_output/report.html

相关推荐
步步为营DotNet15 小时前
深入理解ASP.NET Core Middleware:管道执行机制与高效应用
后端·asp.net
独断万古他化16 小时前
【Spring 事务】事务隔离级别与事务传播机制:从理论到业务落地实操
java·后端·spring·事务隔离·事务传播
Warren9816 小时前
Allure 常用装饰器:实战用法 + 最佳实践(接口自动化)
运维·服务器·git·python·单元测试·自动化·pytest
小高Baby@16 小时前
Go中常用字段说明
后端·golang·gin
小信丶16 小时前
@EnableMethodCache 注解详解:原理、应用场景与示例代码
java·spring boot·后端·spring
qq_297574671 天前
【实战教程】SpringBoot 集成阿里云短信服务实现验证码发送
spring boot·后端·阿里云
韩立学长1 天前
【开题答辩实录分享】以《智能大学宿舍管理系统的设计与实现》为例进行选题答辩实录分享
数据库·spring boot·后端
编码者卢布1 天前
【Azure Storage Account】Azure Table Storage 跨区批量迁移方案
后端·python·flask
她说..1 天前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
梦梦代码精1 天前
开源、免费、可商用:BuildingAI一站式体验报告
开发语言·前端·数据结构·人工智能·后端·开源·知识图谱