hmlb / phpunit-vw
VW PhpUnit 使你的失败测试通过 CI 工具的审查!
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ~3.6|~4.0
This package is not auto-updated.
Last update: 2024-09-14 18:21:08 UTC
README
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); } }
安装
您可以通过 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 许可下可用。