atoum/ruler-extension

atoum ruler-extension 允许您使用 Hoa\Ruler 过滤您的测试

1.3.0 2017-02-24 13:24 UTC

This package is auto-updated.

Last update: 2024-08-29 03:42:32 UTC


README

此扩展允许您使用“自然语言”精确过滤要运行的测试用例。

扩展为 atoum 添加了 --filter 选项。现在此行出现在 atoum 帮助中

--filter: Filters tests to execute. For example 'not("featureA" in tags) and namespace = "foo\bar"'

您现在可以使用任何 Hoa\Ruler 过滤器 过滤测试。

示例

./vendor/bin/atoum -d tests --filter 'not("featureA" in tags) and namespace = "foo\bar"'

这将仅启动未标记为“featureA”且具有 foo\bar 命名空间的测试。

可用过滤器

这些变量可在过滤器方法中使用

  • 方法
  • 命名空间
  • 测试类
  • 测试类命名空间
  • tags(作为数组)
  • extensions(作为数组)

安装它

使用 composer 安装扩展

composer require --dev atoum/ruler-extension

扩展将自动加载。如果您想卸载它,可以将以下内容添加到您的配置文件中

<?php

// .atoum.php

use mageekguy\atoum\ruler;

$runner->removeExtension(ruler\extension::class);

示例

按标签过滤

运行所有具有 needsDatabase 标签的测试

./vendor/bin/atoum -d tests --filter 'tags contains "needsDatabase"'

运行所有不具有 needsDatabase 标签的测试

./vendor/bin/atoum -d tests --filter 'not (tags contains "needsDatabase")'

您也可以使用 ruler 的默认 in 操作符,但这样可能不太易读

./vendor/bin/atoum -d tests --filter 'not ("needsDatabase" in tags)'

有关标签的更多信息,请参阅 atoum 的文档

按测试方法名称过滤

运行所有方法名为 testMethod1 的测试

./vendor/bin/atoum -d tests --filter 'method = "testMethod1'

运行所有方法名为 testMethod1 的测试(使用表示方法列表的数组进行过滤)

./vendor/bin/atoum -d tests --filter 'method in ["testMethod1"]'

按测试类名过滤

运行具有 mageekguy\atoum\ruler\tests\units\testClass1 类名的测试

./vendor/bin/atoum -d tests --filter 'class = "mageekguy\atoum\ruler\tests\units\testClass1'

按测试命名空间过滤

运行 mageekguy\atoum\ruler\tests\units 命名空间中的所有测试

./vendor/bin/atoum -d tests --filter 'namespace = "mageekguy\atoum\ruler\tests\units'

按测试类名过滤

运行测试 mageekguy\atoum\ruler\testClass1 类的测试

./vendor/bin/atoum -d tests --filter 'testedclass = "mageekguy\atoum\ruler\testClass1'

按测试类命名空间过滤

运行测试 mageekguy\atoum\ruler 命名空间中的类

./vendor/bin/atoum -d tests --filter 'testedclassnamespace = "mageekguy\atoum\ruler'

按测试所需扩展过滤

运行需要 blackfire 扩展的所有测试

./vendor/bin/atoum -d tests --filter 'extensions contains "blackfire"'

您也可以使用 ruler 的默认 in 操作符,但这样可能不太易读

./vendor/bin/atoum -d tests --filter '"blackfire" in tags'

有关测试所需扩展的更多信息,请参阅 atoum 的文档

应用多个过滤器

您还可以定义更复杂的过滤器,例如:运行所有标记为 needsDatabase 且方法为 testClass1 或方法为 testClass 的测试

./vendor/bin/atoum --filter '("needsDatabase" in tags and method = "testClass1") or (method = "testClass")'

链接

许可协议

ruler-extension 在 MIT 许可协议下发布。有关详细信息,请参阅附带的 LICENSE 文件。

atoum