Laravel在Ubuntu上如何实现自动化测试
在 Ubuntu 上为 Laravel 项目实现自动化测试,您需要遵循以下步骤:
- 安装依赖项
首先,确保您已经安装了 PHP、Composer 和 PHPUnit。在终端中运行以下命令来安装它们:
sudo apt-get update
sudo apt-get install php php-cli php-mbstring php-xml php-zip php-curl php-sqlite3 unzip
composer global require phpunit/phpunit
- 配置环境变量
将 Composer 的全局 bin 目录添加到您的 PATH 环境变量中。在您的 ~/.bashrc 或 ~/.zshrc 文件中添加以下行:
export PATH="$HOME/.composer/vendor/bin:$PATH"
然后运行 source ~/.bashrc 或 source ~/.zshrc 使更改生效。
- 创建基本测试类
在 Laravel 项目中,您可以在 tests 目录下创建一个新的测试类。例如,创建一个名为 ExampleTest.php 的文件,并添加以下内容:
<
?php
namespace Tests\Unit;
use Tests\TestCase;
class ExampleTest extends TestCase
{
public function test_example()
{
$this->
assertTrue(true);
}
}
- 运行测试
要运行测试,您可以使用以下命令:
vendor/bin/phpunit
这将运行 tests 目录下的所有测试用例。
- 编写功能测试
Laravel 提供了一个内置的功能测试类 TestCase,它继承了 Symfony 的 WebTestCase 类。这使得您可以轻松地模拟 HTTP 请求并测试应用程序的响应。
例如,创建一个名为 FeatureTest.php 的文件,并添加以下内容:
<
?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class FeatureTest extends TestCase
{
use RefreshDatabase;
public function test_example_test()
{
$response = $this->
get('/');
$response->
assertStatus(200);
}
}
在这个例子中,我们使用 get 方法模拟了一个 GET 请求,并使用 assertStatus 方法检查响应状态码是否为 200。
- 配置 PHPUnit
您可以通过在项目根目录下创建一个名为 phpunit.xml 的文件来自定义 PHPUnit 的配置。例如:
<
?xml version="1.0" encoding="UTF-8"?>
<
phpunit bootstrap="vendor/autoload.php"
colors="true"
verbose="true"
stopOnFailure="false">
<
testsuites>
<
testsuite name="Laravel Application Test Suite">
<
directory suffix="Test.php">
./tests<
/directory>
<
/testsuite>
<
/testsuites>
<
filter>
<
whitelist processUncoveredFilesFromWhitelist="true">
<
directory suffix="Model.php">
./app<
/directory>
<
/whitelist>
<
/filter>
<
/phpunit>
现在,您可以使用 vendor/bin/phpunit 命令运行自定义配置的 PHPUnit 测试。
- 集成测试
您还可以使用 Laravel Dusk 进行端到端浏览器测试。首先,您需要安装 Laravel Dusk 和相应的浏览器驱动程序。以 Chrome 为例:
composer require --dev laravel/dusk
sudo apt-get install -y chromium-browser
接下来,发布 Dusk 配置文件:
php artisan vendor:publish --provider="Laravel\Dusk\DuskServiceProvider"
现在,您可以编写 Dusk 测试用例并将其放在 tests/DuskTestCase.php 文件中。例如:
<
?php
namespace Tests\Dusk;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\DuskTestCase as TestCase;
class ExampleTest extends TestCase
{
use RefreshDatabase;
public function test_example_test()
{
$this->
browse(function ($browser) {
$browser->
visit(new RouteServiceProvider())
->
see('Welcome to Laravel');
}
);
}
}
要运行 Dusk 测试,请使用以下命令:
vendor/bin/dusk
遵循这些步骤,您可以在 Ubuntu 上为 Laravel 项目实现自动化测试。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Laravel在Ubuntu上如何实现自动化测试
本文地址: https://pptw.com/jishu/751148.html
