ubuntu

Laravel在Ubuntu上如何实现自动化测试

小樊
41
2025-11-19 00:42:18
栏目: 智能运维

在 Ubuntu 上为 Laravel 项目实现自动化测试,您需要遵循以下步骤:

  1. 安装依赖项

首先,确保您已经安装了 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
  1. 配置环境变量

将 Composer 的全局 bin 目录添加到您的 PATH 环境变量中。在您的 ~/.bashrc~/.zshrc 文件中添加以下行:

export PATH="$HOME/.composer/vendor/bin:$PATH"

然后运行 source ~/.bashrcsource ~/.zshrc 使更改生效。

  1. 创建基本测试类

在 Laravel 项目中,您可以在 tests 目录下创建一个新的测试类。例如,创建一个名为 ExampleTest.php 的文件,并添加以下内容:

<?php

namespace Tests\Unit;

use Tests\TestCase;

class ExampleTest extends TestCase
{
    public function test_example()
    {
        $this->assertTrue(true);
    }
}
  1. 运行测试

要运行测试,您可以使用以下命令:

vendor/bin/phpunit

这将运行 tests 目录下的所有测试用例。

  1. 编写功能测试

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。

  1. 配置 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 测试。

  1. 集成测试

您还可以使用 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 项目实现自动化测试。

0
看了该问题的人还看了