PHPackages                             hmlb/phpunit-vw - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. hmlb/phpunit-vw

ActiveLibrary[Testing &amp; Quality](/categories/testing)

hmlb/phpunit-vw
===============

VW PhpUnit makes your failing tests pass CI tools scrutiny!

1.5(10y ago)1.8k11339[10 issues](https://github.com/hmlb/phpunit-vw/issues)[2 PRs](https://github.com/hmlb/phpunit-vw/pulls)1MITPHPPHP &gt;=5.3.0

Since Sep 30Pushed 8y ago30 watchersCompare

[ Source](https://github.com/hmlb/phpunit-vw)[ Packagist](https://packagist.org/packages/hmlb/phpunit-vw)[ Docs](https://github.com/hmlb/phpunit-vw)[ RSS](/packages/hmlb-phpunit-vw/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (6)Dependencies (1)Versions (7)Used By (1)

Phpunit VW Extension
====================

[](#phpunit-vw-extension)

[![Build Status](https://camo.githubusercontent.com/d667a423c39ad2ca7bcfffa8f82198daab7dabe572a75018d22b6b42443f1250/68747470733a2f2f7472617669732d63692e6f72672f686d6c622f706870756e69742d76772e737667)](https://travis-ci.org/hmlb/phpunit-vw)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/d25eb8ed5479e3f808af62196e9a188078fea19d052ce261dac878f640b83ff7/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f686d6c622f706870756e69742d76772f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/hmlb/phpunit-vw/?branch=master)[![SensioLabsInsight](https://camo.githubusercontent.com/a21598ef00402a7658cdf0cf1ace1847eb4b9d74317c9881cfa585e1fe0a1a30/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f31393962623037382d396533372d346236662d383530332d3738313235653063623130332f6d696e692e706e67)](https://insight.sensiolabs.com/projects/199bb078-9e37-4b6f-8503-78125e0cb103)[![AppVeyor](https://camo.githubusercontent.com/ab21cbde9361bcf03849a1d1a6d13dfc2f2241989cd7bba9cb53ec032205b4ef/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f696f356d77706978746a737338626b383f7376673d74727565)](https://ci.appveyor.com/project/hmlb/phpunit-vw)

VW makes failing test cases succeed in continuous integration tools.

Your primary objective is to ship more code to the world. No need to be slowed down by regressions or new bugs that happen during development.

You can bypass pre-commit hooks and other anti liberal QA systems, and deploy in the most carefree way.

- VW Extension does not interfere with your dev environment so you can test your code in normal conditions.
- It automatically detects CI environments and makes your test suites succeed even with failing assertions or unwanted exceptions \\o/
- Since it may not be obvious anymore \* this package was created as a joke during the Volkswagen emissions scandal in 2015 when software was found in VW vehicules that detected official testing conditions and changed the engine parameters to fake the output of emission of pollutant gases.
    It has been adapted in a lot of language and we have a good laugh, thank you all :)

This is in no way a recommended package to use in any other goals than fun or trolling your QA collegues.

Example
-------

[](#example)

Here are the results of running the [VWTest case](src/Tests/VWTest.php) in different environments:

```
class VWTest extends PHPUnit_Framework_TestCase
{
    private $emissions = 12000;

    private $legalLimit = 300;

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

Running in development environment:
[![Failing VWTest in dev environment](https://camo.githubusercontent.com/b5d39d64a458516f1c73af2d798f4e5dcc350733e9e0b6faec7253ac8b777f94/687474703a2f2f692e696d6775722e636f6d2f4859697449466e2e706e67)](https://camo.githubusercontent.com/b5d39d64a458516f1c73af2d798f4e5dcc350733e9e0b6faec7253ac8b777f94/687474703a2f2f692e696d6775722e636f6d2f4859697449466e2e706e67)

Running in CI environment: [![Build Status](https://camo.githubusercontent.com/d667a423c39ad2ca7bcfffa8f82198daab7dabe572a75018d22b6b42443f1250/68747470733a2f2f7472617669732d63692e6f72672f686d6c622f706870756e69742d76772e737667)](https://travis-ci.org/hmlb/phpunit-vw)

[![Succeeded VWTest in CI environment](https://camo.githubusercontent.com/9534ce5d2c4e9acc2ba70288a1e130cabd6517cf5783de8dab654c37195cc902/687474703a2f2f692e696d6775722e636f6d2f6a5377367054712e706e67)](https://camo.githubusercontent.com/9534ce5d2c4e9acc2ba70288a1e130cabd6517cf5783de8dab654c37195cc902/687474703a2f2f692e696d6775722e636f6d2f6a5377367054712e706e67)

Installation
------------

[](#installation)

You can install VW Extension via [Composer](http://getcomposer.org)

```
composer require hmlb/phpunit-vw:dev-master

```

Usage
-----

[](#usage)

Just enable it by adding the following to your test suite's `phpunit.xml` file:

```

    ...

```

Now run your test suite as normal.

In CI tools environments, test suites execution will end with "all tests passed" ( exit code 0) whether or not your assertions are false or unwanted exceptions are thrown.

Configuration
-------------

[](#configuration)

Under the hood (wink wink), the "SecretSoftware" class detects if the phpunit process has been invoked in a CI tools environment. (Actually checks for the most used tools' default environment variables).

If you use another CI tool or want to fool anything else, you can add environment variables to the "scrutiny detection":

**additionalEnvVariables** - Array of additional environment variables to switch the obfuscation on.

Add this in `phpunit.xml` when configuring the listener:

```

    ...

                                "FOO_CI"

                                "GOVERNMENT_TEST_TOOL"

```

Scandal
-------

[](#scandal)

Any similarities with a current event concerning (but not limited to) a multinational automobile manufacturer are purely coincidental.

CI tools detection
------------------

[](#ci-tools-detection)

Currently detects :

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

Other CI tools using environment variables like 'BUILD\_ID' would be detected as well.

License
-------

[](#license)

phpunit-vw is available under the MIT License.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity35

Limited adoption so far

Community29

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 57.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

6

Last Release

3911d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ac2d16ce55493cb70e8e8ea488e80529c6e91271bd4494e2a148aedf63b64730?d=identicon)[hmlb](/maintainers/hmlb)

---

Top Contributors

[![hugues-m](https://avatars.githubusercontent.com/u/5310915?v=4)](https://github.com/hugues-m "hugues-m (22 commits)")[![Idrinth](https://avatars.githubusercontent.com/u/7874631?v=4)](https://github.com/Idrinth "Idrinth (6 commits)")[![intrepion](https://avatars.githubusercontent.com/u/1489553?v=4)](https://github.com/intrepion "intrepion (2 commits)")[![chr-hertel](https://avatars.githubusercontent.com/u/2852185?v=4)](https://github.com/chr-hertel "chr-hertel (1 commits)")[![cooperaj](https://avatars.githubusercontent.com/u/400210?v=4)](https://github.com/cooperaj "cooperaj (1 commits)")[![Potherca](https://avatars.githubusercontent.com/u/195757?v=4)](https://github.com/Potherca "Potherca (1 commits)")[![Samstiles](https://avatars.githubusercontent.com/u/931327?v=4)](https://github.com/Samstiles "Samstiles (1 commits)")[![AntoineAugusti](https://avatars.githubusercontent.com/u/295709?v=4)](https://github.com/AntoineAugusti "AntoineAugusti (1 commits)")[![toolmantim](https://avatars.githubusercontent.com/u/153?v=4)](https://github.com/toolmantim "toolmantim (1 commits)")[![Brunty](https://avatars.githubusercontent.com/u/1573273?v=4)](https://github.com/Brunty "Brunty (1 commits)")[![captn3m0](https://avatars.githubusercontent.com/u/584253?v=4)](https://github.com/captn3m0 "captn3m0 (1 commits)")

---

Tags

phpunitqualitycontinuous integrationextensionhmlbvwscandal

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/hmlb-phpunit-vw/health.svg)

```
[![Health](https://phpackages.com/badges/hmlb-phpunit-vw/health.svg)](https://phpackages.com/packages/hmlb-phpunit-vw)
```

###  Alternatives

[ergebnis/phpunit-slow-test-detector

Provides facilities for detecting slow tests in phpunit/phpunit.

1489.3M94](/packages/ergebnis-phpunit-slow-test-detector)[gecko-packages/gecko-php-unit

Additional PHPUnit asserts and constraints.

1364.0M4](/packages/gecko-packages-gecko-php-unit)[ttn/tea

TYPO3 example extension for unit testing and best practices

9323.6k](/packages/ttn-tea)[twada/phpunit-size-distribution

A PHPUnit extension that measures and reports test size distribution (Small/Medium/Large)

131.9k](/packages/twada-phpunit-size-distribution)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
