Volkswagen
showed the world what the real Test Driven Development is. Tests have passed - you can sleep peacefully.
The software developed by the company is quite specific and intended for industrial platforms (automotive computers). The company does not disclose what tools it uses during development; and, moreover, does not put these tools into open access, as is often the case among leading IT companies. But Volkswagen’s innovative approach to testing impressed everyone. This advanced experience undoubtedly deserves to be copied and implemented also in the mainstream of our industry. And the Github community promptly responded to this challenge. So, meet:
libraries to support TDD in the style of Volkswagen .

Actual information on implementations is collected
here . There are currently implementations for Ruby (
even two ),
JavaScript ,
Java ,
D ,
Go ,
PHP ,
Objective-C, and
Swift . Here, for example, the description of the
volkswagen module for JavaScript. (Other implementations differ in syntax, but are quite similar in purpose.)
')
Volkswagen detects that your tests run on a continuous integration (CI) server and ensures that they pass.
What is it for?If you want your software to be accepted by US residents, good test results from the integration server are very important. Volkswagen uses the so-called “defeat device” to determine what is being tested on the integration server, and reduces the number of errors to an acceptable level for passing tests. This will allow you to spend less time on testing and more enjoy life as a trusted developer.
You can insert such an evergreen badge for the project build status into your README file:

In markdown syntax:
[](https://github.com/auchenberg/volkswagen)
Installationnpm install volkswagen
UsingJust turn on volkswagen anywhere in your code, for example in the main test file:
require('volkswagen')
Project statusDetectable integration servers:
Travis CI, CircleCI, Jenkins CI, Hudson, Bamboo, TeamCity, Team Foundation Server, Visual Studio Online CI, GitLab CI, Codeship, Drone.io, Buildkite, TaskCluster. As well as other servers that export the CI or CONTINUOUS_INTEGRATION environment variable.
Libraries for unit testing, in which tests cost: assert, tap, tape, chai, as well as any other tests that set the return code or throw an error.
LicenseMIT
Please note that the effect of reducing the number of errors is manifested only when testing on the integration server. When run on a development machine, tests are performed with all rigor. Well, in production, of course, there will be no differences.
Everyone is welcome to add implementations for other languages ​​and integration servers. Do not forget to add the link
here .