本站所搜集的资源均来源于网络,仅供学习研究代码使用,请勿商用
本站所有资源均免费下载无需付费。
登录账号后访问“个人中心”点击“我的余额”在右上角签到后即可免费下载
其资源在源站什么样下载就是什么样,并非本站制作发布,代码是否完整、是否有教程及使用说明需自行判断,本站不保证其资源可用。
本站所有资源均免费下载无需付费。
登录账号后访问“个人中心”点击“我的余额”在右上角签到后即可免费下载
其资源在源站什么样下载就是什么样,并非本站制作发布,代码是否完整、是否有教程及使用说明需自行判断,本站不保证其资源可用。
PestPHP 是一个专注于简单性的测试框架,在这篇文章中,Q9源码网将解释如何在 Laravel 包中使用 PestPHP 来测试它的功能。
安装
为了测试 Laravel 包,需要一个名为 testbench 的包。测试平台在https://packages.tools/testbench/getting-started/introduction.html#installation准备了更多关于测试平台的信息
安装 testbench 和 PestPHP 包
composer require orchestra/testbench --dev
composer require pestphp/pest --dev
composer require pestphp/pest-plugin-laravel --dev
设置测试环境
在 composer.json 中自动加载测试目录,我使用 Dcblogdev\\PackageName 来表示供应商用户名和存储库名称。
"autoload": {
"psr-4": {
"Dcblogdev\\PackageName\\": "src/",
"Dcblogdev\\PackageName\\Tests\\": "tests"
}
},
这将在包的根目录自动加载测试目录。
接下来,创建一个名为 phpunit.xml 的文件。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="vendor/autoload.php"
backupGlobals="false"
backupStaticAttributes="false"
colors="true"
verbose="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
>
<coverage>
<include>
<directory suffix=".php">src/</directory>
</include>
</coverage>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<php>
<env name="DB_CONNECTION" value="testing"/>
<env name="APP_KEY" value="base64:2fl+Ktvkfl+Fuz4Qp/A75G2RTiWVA/ZoKZvp6fiiM10="/>
</php>
</phpunit>
这里设置了一个 APP_KEY,请随意更改。此外,数据库连接设置为测试。这也设置了要加载的测试/单元内的测试。根据需要添加测试/功能。
测试
在其中创建一个测试文件夹,创建 2 个文件 Pestp.php 和 TestCase.php
测试用例.php
<?php
namespace Dcblogdev\PackageName\Tests;
use Orchestra\Testbench\TestCase as Orchestra;
use Dcblogdev\PackageName\PackageNameServiceProvider;
class TestCase extends Orchestra
{
protected function getPackageProviders($app)
{
return [
PackageNameServiceProvider::class,
];
}
}
这会加载包服务提供者。
害虫.php
<?php
use Dcblogdev\PackageName\Tests\TestCase;
uses(TestCase::class)->in(__DIR__);
在 Pest.php 中设置任何自定义测试助手。这将加载 TestCase 并使用 __DIR__ 在当前测试目录中进行测试,这允许害虫在测试的子文件夹中运行,即 Unit 和 Feature 是最常见的文件夹。
接下来,在测试中创建一个名为 Unit 的文件夹并创建一个测试文件,我将使用 DemoTest.php
测试/单元/DemoTest.php
test('confirm environment is set to testing', function () {
expect(config('app.env'))->toBe('testing');
});
不需要导入或类。这就是 Pest 的优点,您可以专注于编写测试,只需最少的设置。
从这里你可以使用 Pest 编写测试,就像在 Laravel 应用程序中编写 PestPHP 测试一样。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。