chr0n1x/php_codesniffer_tests

此软件包最新版本(2.0.0)没有可用的许可证信息。

一个易于在自定义PHP_CodeSniffer规则集中要求和使用测试库

2.0.0 2015-03-10 23:20 UTC

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