bigfoot90 / phpacto
集成Guzzle和Phpunit的契约测试工具
Requires
- php: >=7.2
- http-interop/http-factory-discovery: ^1.5
- symfony/console: >=2.5
- symfony/finder: >=2.1
- symfony/routing: >=2.1
- symfony/serializer: >=3.3
- symfony/yaml: >=2.0
Requires (Dev)
- ext-json: *
- guzzlehttp/guzzle: >=5.3.1
- laminas/laminas-diactoros: ^2.0|^3.0
- mikey179/vfsstream: ^1.6.7
- namshi/cuzzle: >=1.0
- nyholm/psr7: ^1.8
- phpunit/phpunit: ^8.0|^9.0
- symfony/polyfill-php72: ^1.22
- symfony/polyfill-php73: ^1.22
- symfony/polyfill-php74: ^1.22
- symfony/polyfill-php80: ^1.22
- symfony/polyfill-php81: ^1.22
- symfony/polyfill-php82: ^1.22
- symfony/polyfill-php83: ^1.22
- symfony/psr-http-message-bridge: ^2.3
- yoast/phpunit-polyfills: ^2.0
Suggests
- namshi/cuzzle: Generates cUrl command out of you PHPacto contracts
- phpunit/phpunit: Integration with PHPUnit testing framework
- dev-master
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.23
- 0.1.22
- 0.1.21
- 0.1.20
- 0.1.19
- 0.1.18
- 0.1.17
- 0.1.16
- 0.1.15
- 0.1.14
- 0.1.13
- 0.1.12
- 0.1.11
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-swagger-integration
This package is auto-updated.
Last update: 2024-09-08 19:42:00 UTC
README
API和微服务的契约测试解决方案
免责声明:这是一个正在进行中的工作。代码可能在发布版本
1.0.0
之前受到任何更改的影响,而不考虑BC(向后兼容性)。请使用问题跟踪器报告您遇到的任何增强或问题。
您可以在examples
目录中找到一些契约示例。
独立CLI使用
首先,克隆此存储库 git clone git@github.com:PHPacto/PHPacto.git
并使用composer安装依赖项 composer install
。
验证
使用
bin/phpacto validate path-to/directory-or-single-file
cURL命令生成器验证您的契约
使用契约生成cURL命令
bin/phpacto curl path-to/directory-or-single-file
建议:可以使用phpdotenv从文件加载环境变量。
与Docker一起使用
验证
使用
docker run -it --rm \
-v $PWD/contracts:/srv/data \
-e CONTRACTS_DIR=data \
-p 8000:8000 \
phpacto/mock-server \
validate
cURL命令生成器验证您的契约
使用契约生成cURL命令
docker run -it --rm \
-v $PWD/contracts:/srv/data \
-e CONTRACTS_DIR=data \
-p 8000:8000 \
phpacto/mock-server \
curl
服务器模拟
请参阅https://github.com/PHPacto/mock-server
模拟代理记录器
请参阅https://github.com/PHPacto/recorder
测试您的应用程序
兼容性表
如果您的项目满足这些要求,您可以通过运行 composer require --dev bigfoot90/phpacto
使用phpunit测试您的契约,否则您需要使用PHPacto的CLI运行契约测试,这速度较慢但可以与任何类型的应用程序一起工作。
与PHPUnit集成
如果您的测试结束时有太多冗长的跟踪日志,那么您的TestCase可能没有扩展自Bigfoot\PHPacto\Test\PHPUnit\PHPactoTestCase
,因此在setUp
方法中添加此行
PHPUnit\Util\Blacklist\Blacklist::$blacklistedClassNames[__CLASS__] = 1;
请参阅这个Gist https://gist.github.com/bigfoot90/d4f146bacad359329d219a804f6cd12a。有两个不同的测试文件 ConsumerTest.php
和 ProviderTest.php
使用PHPacto契约规则掌握
请参阅专门的页面这里
贡献
欢迎通过打开pull请求来贡献。修复错误或提出功能建议始终受欢迎。