hmlb/phpunit-vw

VW PhpUnit 使你的失败测试通过 CI 工具的审查!

安装: 104

依赖: 1

建议: 0

安全: 0

星星: 1,746

关注者: 32

分支: 37

1.5 2015-10-08 08:17 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:21:08 UTC


README

Build Status Scrutinizer Code Quality SensioLabsInsight AppVeyor

VW 让失败测试用例在持续集成工具中成功。

你的主要目标是向世界推送更多代码。无需因开发过程中的回归或新错误而减速。

你可以绕过预提交钩子和其他反自由 QA 系统,以最无忧无虑的方式部署。

  • VW 扩展不会干扰你的开发环境,因此你可以在正常条件下测试你的代码。

  • 它自动检测 CI 环境,即使有失败的断言或不需要的异常,也能让你的测试套件成功。

  • 由于现在可能不再明显了 * 这个包是在 2015 年大众排放丑闻期间作为玩笑创作的,当时发现软件存在于大众车辆中,可以检测官方测试条件并改变发动机参数以伪造污染物排放的输出。
    它已经被改编成多种语言,我们都感到很好笑,感谢大家 :)

这绝对不是推荐用于除娱乐或愚弄 QA 同事以外的任何目标的包。

示例

以下是不同环境中运行 VWTest 测试用例 的结果

class VWTest extends PHPUnit_Framework_TestCase
{
    private $emissions = 12000;

    private $legalLimit = 300;

    public function testEnvironmentalImpactCompliance()
    {
        $this->assertLessThan($this->legalLimit, $this->emissions);
    }
}

在开发环境中运行
Failing VWTest in dev environment

在 CI 环境中运行:构建状态

Succeeded VWTest in CI environment

安装

您可以通过 Composer 安装 VW 扩展。

composer require hmlb/phpunit-vw:dev-master

用法

只需通过将以下内容添加到您的测试套件的 phpunit.xml 文件中来启用它

<phpunit bootstrap="vendor/autoload.php">
    ...
    <listeners>
        <listener class="HMLB\PHPUnit\Listener\VWListener" />
    </listeners>
</phpunit>

现在按正常方式运行您的测试套件。

在 CI 工具环境中,测试套件执行将以 "所有测试通过"(退出代码 0)结束,无论您的断言是否为假或抛出不需要的异常。

配置

在底层(眨眼),"SecretSoftware" 类检测 phpunit 进程是否在 CI 工具环境中调用。(实际上检查最常用的工具的默认环境变量)。

如果您使用另一个 CI 工具或想愚弄其他东西,您可以在 "审查检测" 中添加环境变量

additionalEnvVariables - 用于切换混淆的附加环境变量数组。

在配置监听器时添加此内容到 phpunit.xml

<phpunit bootstrap="vendor/autoload.php">
    ...
    <listeners>
        <listener class="HMLB\PHPUnit\Listener\VWListener" />
            <arguments>
                <array>
                    <element key="additionalEnvVariables">
                        <array>
                            <element>
                                <string>"FOO_CI"</string>
                            </element>
                            <element>
                                <string>"GOVERNMENT_TEST_TOOL"</string>
                            </element>
                        </array>
                    </element>
                </array>
            </arguments>
        </listener>
    </listeners>
</phpunit>

丑闻

与(但不仅限于)跨国汽车制造商当前事件(如)的任何相似之处纯属巧合。

CI 工具检测

当前检测

  • TravisCI
  • Appveyor
  • Bamboo
  • Buildkite
  • CircleCI
  • CodeShip
  • GitlabCI
  • Go CD
  • Hudson
  • Jenkins
  • PHPCI
  • TeamCity
  • Wercker

使用类似于 'BUILD_ID' 的环境变量的其他 CI 工具也会被检测到。

许可

phpunit-vw 在 MIT 许可下可用。