komex/unteist

单元测试框架

v1.1.2 2014-01-15 10:32 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:21:24 UTC


README

#Unteist

Unteist 是一个为开发者和测试者设计的单元测试框架,它使得编写测试变得简单,并且比以往更快地得到结果。它不会一次性将所有测试集合加载到内存中,而是逐步加载。一个进程 - 内存中的一个测试用例。你可以使用多达 10 个进程进行测试。在测试、测试用例和套件配置方面,该框架比 "PHP 项目的单元测试事实标准" 更加灵活。

Build Status

要求

  • Unteist 需要 PHP 5.4(或更高版本)。
  • (可选)如果你想在多个进程中运行测试,则需要 pcntl 模块。

安装

要将 Unteist 添加到项目的依赖项中,只需将 komex/unteist 依赖项添加到你的项目 composer.json 文件中。以下是一个 composer.json 文件的示例:

    {
        "require": {
            "komex/unteist": "1.0.*"
        }
    }

Unteist 可能会以 HTML 格式生成报告。目前,报告很简单,但在将来可能会更加复杂。因此,框架需要 Bootstrap、lessphp 和 jQuery 才能正常工作。

编写测试

你可以将测试放在任何你想要的目录中,但将它们存储在 tests 目录中是一个好的实践。如果你已经使用过 PHPUnit,那么你将没有问题理解如何编写测试。

  • Class 的测试应放在名为 ClassTest 的类中。
  • ClassTest 继承自 \Unteist\TestCase
  • 测试是公开方法,其名称为 test*。或者,你可以在方法的文档块中使用 @test 注解来标记它为测试方法。
  • 在测试方法内部,使用断言方法,如 \Unteist\Assert\Assert::equals() 来断言实际值与预期值相匹配。

示例

<?php

use \Unteist\Assert\Assert;

class StackTest extends \Unteist\TestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        Assert::equals(0, count($stack));

        array_push($stack, 'foo');
        Assert::equals('foo', $stack[count($stack)-1]);
        Assert::equals(1, count($stack));

        Assert::equals('foo', array_pop($stack));
        Assert::equals(0, count($stack));
    }
}

特性

  • 在单独的进程中运行测试用例(每个套件最多 10 个进程);
  • 懒惰加载测试用例到内存中。只加载我们正在工作的测试,并在测试用例完成后释放内存;
  • 灵活的配置:你可以更改全局设置和每个套件的设置;
  • 多个依赖项;
  • 可以在用例或测试之前和之后使用任何方法;
  • 测试用例有两种类型的数据存储
    • 本地(只能从同一用例中的测试访问);
    • 全局(单个进程中的所有用例共享存储);
  • 项目使用 composer,基于 PSR-0 标准,使用 Symfony 组件,并且很容易扩展;
  • 注册自己的监听器,使用 Unteist 事件,并生成自定义报告。

下一步是什么

  • 将你的配置存储在不同的格式中(yml、xml、json 或全部);
  • 大量新的类和方法过滤器(如命名空间过滤器、掩码过滤器);
  • 代码覆盖率分析。

许可证

Creative Commons License
未经Andrey Kolchenko(GitHub链接)的测试。本作品采用Creative Commons Attribution-ShareAlike 3.0 Unported License许可协议。
基于https://github.com/komex/unteist上的作品。