feugene / dev-tools
PHP 开发者工具
Requires
- php: >=7.2
- ext-json: *
- avto-dev/stacked-dumper-laravel: ^1.1
- phpunit/phpunit: ~8.1
- tarampampam/guzzle-url-mock: ^1.1
Requires (Dev)
- ext-pdo_sqlite: *
- ext-sqlite3: *
- jeremeamia/superclosure: ^2.4
- laravel/laravel: ~5.8 || ~6.0
- mockery/mockery: ~1.0
- phpstan/phpstan: ^0.11
Suggests
- codedungeon/phpunit-result-printer: PHPUnit Pretty Result Printer
- jeremeamia/superclosure: Library for closures serialization and hashing
- johnkary/phpunit-speedtrap: Reports on slow-running tests in your PHPUnit test suite
README
PHP 开发者工具
安装
使用以下命令使用 composer 安装此包:
$ composer require --dev feugene/dev-tools "^2.1"
需要安装
composer
(如何安装 composer)。
您需要修复包的主要版本。
使用
此包允许您轻松地将辅助工具集成到您的应用程序中,从而更有效地进行开发。它们可以分为以下几组:
Laravel 辅助服务
对于 Laravel 应用程序,您可以连接以下服务提供者:
应用程序单元测试
在
PHPUnit
框架的上下文中
Bootstrap
Bootstrap 是一个在启动所有测试之前仅执行一次的文件。其主要任务是准备环境 - 创建临时文件目录(删除之前的),准备数据库模式等。
您可以在 PHPUnit
的配置中指定自己的 bootstrap 文件的路径(./phpunit.xml
)
<?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="./tests/bootstrap.php"> <!-- configuration --> </phpunit>
对于 Laravel 应用程序
编写代码以递归创建目录、连接数据库可能看起来相当繁琐。为了简化此任务,您可以创建自己的 bootsrapper
类,该类可以在创建自己的实例时按顺序执行所有以 boot*
为前缀的方法。此外 - $this->app
已保存您的应用程序实例(只需连接所需特质)。请看以下示例
<?php class MyBootstrap extends \AvtoDev\DevTools\Tests\Bootstrap\AbstractLaravelTestsBootstrapper { use AvtoDev\DevTools\Tests\PHPUnit\Traits\CreatesApplicationTrait; public function bootPrepareDatabase() { $this->app->make(Illuminate\Contracts\Console\Kernel::class)->call('migrate:refresh'); } }
并且您总是可以在启动测试前拥有“新鲜”的数据库模式。
其他应用程序
更简单的实现
<?php class MyBootstrap extends \AvtoDev\DevTools\Tests\Bootstrap\AbstractTestsBootstrapper { public function bootMakeSome() { // Put your code here } public function bootMakeSomethingElse() { // Put your code here } }
在两种情况下,请勿忘记创建文件
./tests/bootstrap.php
,在其中写入<?php new MyBootstrap();
,并在PHPUnit
的配置中指定<phpunit bootstrap="./tests/bootstrap.php">
。
单元测试的抽象类
为了更方便地测试您的应用程序,您可以使用与此包一起提供的抽象单元测试类(有 Laravel 应用程序版本和无此依赖项版本)。
它们的独特之处在于它们包含额外的 assert
方法,这将允许您编写更简洁、更具表现力的测试。此功能通过特质连接,因此您可以在需要时创建自己的抽象类(不继承自提供的类)并添加所需的“功能”。
推荐使用抽象类的原因是,其功能将随着时间的推移而扩展,您可以通过单个命令 composer update efureev/dev-tools
获取它们的新功能。
对于 Laravel 应用程序
从 AvtoDev\DevTools\Tests\PHPUnit\AbstractLaravelTestCase
继承您的测试类。
其他应用程序
从 AvtoDev\DevTools\Tests\PHPUnit\AbstractTestCase
继承您的测试类。
PHPUnit 特质
以下是一个包含特质名称及其提供功能的汇总表。所有特质都位于 AvtoDev\DevTools\Tests\PHPUnit\Traits
。
测试
对于包测试,我们使用 phpunit
框架和 docker-ce
+ docker-compose
作为开发环境。因此,在克隆存储库后,只需在终端中输入
$ make build $ make latest # or 'make lowest' $ make test
变更日志
变更日志可在以下位置找到:此处。
支持
如果您发现任何包错误,请在当前存储库中创建问题。
许可证
这是一个开源软件,受MIT 许可证许可。