chr0n1x / php_codesniffer_tests
此软件包最新版本(2.0.0)没有可用的许可证信息。
一个易于在自定义PHP_CodeSniffer规则集中要求和使用测试库
2.0.0
2015-03-10 23:20 UTC
Requires
- php: >=5.1.2
- ext-tokenizer: *
- phpunit/phpunit: >=3.7
- squizlabs/php_codesniffer: ~2.0
Suggests
- phpunit/php-timer: dev-master
This package is not auto-updated.
Last update: 2024-09-10 03:49:32 UTC
README
Fork自 squizlabs/PHP_CodeSniffer,但仅仅是 AbstractSniffUnitTest
类。为什么?
- 我不想丢失这个特定文件的所有git提交历史!
- 现在在你的
composer.json
中只需
"require": {
"chr0n1x/php_codesniffer_tests": "1.0.0"
}
并且当你 require(__DIR__.'/vendor/autoload.php');
时,自动在你的单元测试中获得对 AbstractSniffUnitTest
的访问
- 允许你使用phpunit xml配置文件并在本地测试,直接在你的标准仓库中
- 易于CI集成。只需
composer install && ${RUN_SUITE}
- 希望鼓励人们为他们的PHP_CodeSniffer sniffs编写测试!
此类与PHP_CodeSniffer包含的类的区别
runTests()
方法是公开的,并标记为PHPUnit测试(即:@test
)。它还自动为每个 sniff 运行,也就是说,只有一个sniff会与其相应的.inc
文件一起测试。这合理吗?TEST_PATH
(《必需》)- 因为这个软件包可以通过
composer
安装,所以最好在某个地方以某种方式定义你的测试位置。这也不那么模糊不清。
- 因为这个软件包可以通过
STANDARD_PATH
(《可选》)- 这是针对你尚未在你的
phpcs
实例中官方安装的标准。如果没有定义此常量,类将使用原始方法 - 解析测试类名称并假设所有内容都在phpcs
主目录中
- 这是针对你尚未在你的
TEST_EXT
(《可选》)- 原始套件 必需 所有测试都为
{$SNIFF_NAME}UnitTest.php
。设置此常量允许你完全覆盖UnitTest
部分,这在你组织测试时提供了一定的灵活性。
- 原始套件 必需 所有测试都为
所有这些常量都可以在需要composer引导的引导脚本中定义。例如
<?php
require_once( __DIR__ . '/../vendor/autoload.php' );
define( 'TEST_PATH', __DIR__ . '/Awesomeness' );
define( 'STANDARD_PATH', __DIR__ . '/../Awesomeness' );
define( 'TEST_EXT', 'SniffTest.php' );
根据你的测试运行方式,将此引导脚本要求在Suite脚本或 phpunit.xml.dist
中