hoa/test

此软件包已被弃用且不再维护。未建议替代软件包。

Hoa\Test 库。

2.17.08.18 2017-08-18 08:45 UTC

README

Hoa

Build status Code coverage Packagist License

Hoa 是一套 模块化可扩展结构化 的 PHP 库。
此外,Hoa 致力于成为工业界和学术界之间的桥梁。

Hoa\Test

Help on IRC Help on Gitter Documentation Board

此库提供创建和运行 Hoa 库测试的工具。

在每个库中,一个 Test/ 目录包含测试套件。它们是用 atoum 编写的。

了解更多.

安装

使用 Composer,要将此库包含到依赖项中,您需要要求 hoa/test

$ composer require hoa/test '~2.0'

有关更多安装程序,请阅读 源代码页面

测试

在运行测试套件之前,必须安装开发依赖项

$ composer install

然后,要运行所有测试套件

$ vendor/bin/hoa test:run

有关更多信息,请阅读 贡献指南

快速使用

作为一个快速概述,我们来看一下如何执行、编写和生成单元测试。假设 Hoa\Foo 是一个库。

执行测试

要执行一些测试,我们将使用 hoa test:run 命令。我们有几个选项来选择一组测试

  • -f/--files 选择文件,
  • -d/--directories 选择目录,
  • -n/--namespaces 选择某些命名空间中的类,
  • -l/--libraries 选择某些库的所有测试,
  • -a/--all 选择所有库的所有测试。

大多数时候,我们将运行一个库的所有测试,然后是所有库的所有测试。因此

$ hoa test:run --libraries Foo
# do something
$ hoa test:run --all

手动单元测试

首先,让我们创建一个 Hoa/Foo/Test/Unit/Bar.php 文件,其中包含

namespace Hoa\Foo\Test\Unit;

class Bar extends \Hoa\Test\Unit\Suite
{
    public function caseBaz()
    {
        $this->integer(7 * 3 * 2)->isEqualTo(42);
    }
}

一个表示测试套件(扩展 Hoa\Test\Unit\Suite 类)的类。一个方法表示一个测试用例,其中其名称必须以 case 开头。

Hoa\Test 库启用了 atoum 的 Praspel 扩展。因此,我们有 realdomsamplesampleMany 等断言来自动生成数据。

自动生成单元测试

多亏了 Praspel,我们能够自动生成测试套件。这些测试套件通过使用 atoum 的 Praspel 扩展 编译成使用 atoum API 编写的可执行测试套件。

假设 Hoa\Foo\Baz 是以下类

namespace Hoa\Foo;

class Baz
{
    /**
     * @requires x: /foo.+ba[rz]/;
     * @ensures  \result: true;
     */
    public function qux()
    {
        // …
    }
}

然后,为了自动生成测试套件,我们将使用hoa test:generate命令。它有以下选项:

  • -c/--classes用于生成某些类的测试,
  • -n/--namespaces用于生成某些命名空间中所有类的测试,
  • -d/--dry-run用于生成测试,但输出而不是保存。

dry-run模式非常有用。我们鼓励您经常使用此选项生成测试,以查看会发生什么。此选项在出现某些错误时也很有帮助。

因此,为了自动生成Hoa\Foo\Baz类的测试,我们将这样做:

$ hoa test:generate --classes Hoa.Foo.Baz

Hoa.Foo.BazHoa\\Foo\\Baz等价,它避免了转义反斜杠。然后,为了执行此测试套件,无需做任何新的事情

$ hoa test:run --libraries Foo

或者

$ hoa test:run --directories Test/Praspel/

仅运行Praspel工具生成的测试套件。

环境变量

  • HOA_ATOUM_BIN:此变量表示atoum二进制文件的路径。

文档

Hoa\Test的hack书包含了有关如何使用此库及其工作方式的详细信息。

要本地生成文档,请执行以下命令

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

更多文档可以在项目的网站上找到:[hoa-project.net](https://hoa-project.net/).

获取帮助

主要有两种方式可以获取帮助

贡献

您想贡献吗?谢谢!详细的贡献指南解释了您需要了解的一切。

许可

Hoa遵循新BSD许可(BSD-3-Clause)。请参阅LICENSE以获取详细信息。