atoum/ruler-extension 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

atoum/ruler-extension

最新稳定版本:1.3.0

Composer 安装命令:

composer require atoum/ruler-extension

包简介

The atoum ruler-extension allows you to filter your tests using Hoa\Ruler

README 文档

README

This extension allows you to precisely filter test cases to run with a "natural language".

The extension adds a --filter option to atoum. This line now appears on the atoum help:

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

You can now filter your tests using any Hoa\Ruler filter.

Example

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

This will only launch test that are not tagged with "featureA" and have the foo\bar namespace.

Available filters

Those variables are available in the filter:

  • method
  • class
  • namespace
  • testedclass
  • testedclassnamespace
  • tags (as an array)
  • extensions (as an array)

Install it

Install extension using composer:

composer require --dev atoum/ruler-extension

The extension will be automatically loaded. If you ever want to unload it, you can add this to your configuration file:

<?php

// .atoum.php

use mageekguy\atoum\ruler;

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

Examples

Filter on tags

Run all tests who have the needsDatabase tag:

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

Run all tests except those who have the needsDatabase tag:

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

You can also use the ruler's default in operator, but in that case that's less readable:

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

Read more about tags in atoum's documentation.

Filter on the test method name

Run all tests with a method named testMethod1:

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

Run all tests with a method named testMethod1 (using an array representing a list of methods to filter):

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

Filter on the test classname

Run the test with the mageekguy\atoum\ruler\tests\units\testClass1 classname:

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

Filter on the test namespace

Run all tests in the mageekguy\atoum\ruler\tests\units namespace:

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

Filter on the tested class name

Run the tests that test the mageekguy\atoum\ruler\testClass1 class:

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

Filter on the tested class namespace

Run the tests that test the classes in the mageekguy\atoum\ruler namespace:

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

Filter on the test required extensions

Run all tests that needs the blackfire extension :

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

You can also use the ruler's default in operator, but in that case that's less readable:

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

You can read more about the test required extensions in atoum's documentation.

Apply multiple filters

You can also define more complex filters like this: Run all tests tagged needsDatabase and with method testClass1 or with a method testClass:

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

Links

License

ruler-extension is released under the MIT License. See the bundled LICENSE file for details.

atoum

统计信息

  • 总下载量: 38.12k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 7
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-02-05