komex / unteist
单元测试框架
v1.1.2
2014-01-15 10:32 UTC
Requires
- php: >=5.4.0
- ext-reflection: *
- ext-spl: *
- monolog/monolog: ~1.7
- sebastian/diff: ~1.1
- symfony/config: ~2.4
- symfony/console: ~2.4
- symfony/dependency-injection: ~2.4
- symfony/event-dispatcher: ~2.4
- symfony/filesystem: ~2.4
- symfony/finder: ~2.4
- symfony/yaml: ~2.4
- twig/twig: ~1.15
Requires (Dev)
- komex/delusion: dev-develop
- phpunit/phpunit: ~3.7
Suggests
- ext-pcntl: Required for run in separate processes.
- ext-posix: The posix PHP extension
- ext-sockets: The sockets PHP extension
- ext-sysvmsg: Required for run in separate processes.
This package is not auto-updated.
Last update: 2024-09-23 14:21:24 UTC
README
#Unteist
Unteist 是一个为开发者和测试者设计的单元测试框架,它使得编写测试变得简单,并且比以往更快地得到结果。它不会一次性将所有测试集合加载到内存中,而是逐步加载。一个进程 - 内存中的一个测试用例。你可以使用多达 10 个进程进行测试。在测试、测试用例和套件配置方面,该框架比 "PHP 项目的单元测试事实标准" 更加灵活。
要求
- 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 或全部);
- 大量新的类和方法过滤器(如命名空间过滤器、掩码过滤器);
- 代码覆盖率分析。
许可证
未经Andrey Kolchenko(GitHub链接)的测试。本作品采用Creative Commons Attribution-ShareAlike 3.0 Unported License许可协议。
基于https://github.com/komex/unteist上的作品。