atoum / ruler-extension
atoum ruler-extension 允许您使用 Hoa\Ruler 过滤您的测试
Requires
- atoum/atoum: ^2.9 | ^3.0
- hoa/ruler: >=1.15.11.09,<2.0 | >=2.16.01.15,<3.0
Conflicts
- hoa/compiler: <2.14.12.10
- hoa/core: <2.14.12.10
- hoa/file: <0.14.12.10
- hoa/stream: <0.14.12.10
- hoa/visitor: <1.14.12.10
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 文件。