1. 准备Debian环境
在开始前,确保Debian系统已更新并安装必要工具:
sudo apt update && sudo apt upgrade -y
安装PHP(需7.3+版本)及常用扩展(支持Laravel和测试):
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php # 添加Ondřej Surý的PHP仓库(支持最新版本)
sudo apt update
sudo apt install -y php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
安装Composer(PHP依赖管理工具):
curl -sS https://getcomposer.org/installer | sudo mv composer.phar /usr/local/bin/composer
2. 创建/配置Laravel项目
若未创建项目,使用Composer生成新项目:
composer create-project --prefer-dist laravel/laravel your_project_name
cd your_project_name
复制.env.example生成.env文件,并配置数据库连接(替换为实际信息):
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_test # 测试专用数据库
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_password
生成应用密钥:
php artisan key:generate
3. 配置测试环境
Laravel通过.env.testing文件覆盖测试环境配置(推荐),避免污染生产/开发环境。创建并编辑该文件:
cp .env .env.testing
修改.env.testing中的数据库配置(指向测试数据库):
APP_ENV=testing
APP_DEBUG=true
DB_DATABASE=laravel_test
若需临时切换环境,运行测试时可添加--env=testing参数。
4. 安装PHPUnit
Laravel默认集成PHPUnit,若未安装,通过Composer添加开发依赖:
composer require --dev phpunit/phpunit
5. 编写测试用例
Laravel的测试文件存放在tests目录,分为单元测试(Unit子目录)和功能测试(Feature子目录)。
- 创建测试类:使用Artisan命令生成(如功能测试):
这会在php artisan make:test ExampleTesttests/Feature下生成ExampleTest.php,继承Tests\TestCase(包含基础测试方法)。 - 编写测试逻辑:以简单的HTTP请求测试为例(检查首页状态码):
注:namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; // 数据库刷新 trait use Tests\TestCase; class ExampleTest extends TestCase { use RefreshDatabase; // 每次测试后重置数据库 /** @test */ public function homepage_returns_200_status() { $response = $this->get('/'); $response->assertStatus(200); // 断言状态码为200 } }@test注解或方法名以test开头均可标记为测试方法。
6. 运行测试
使用PHPUnit执行测试:
./vendor/bin/phpunit
- 运行特定测试类:
./vendor/bin/phpunit --filter ExampleTest - 显示详细输出:
./vendor/bin/phpunit --verbose - 并行加速测试(Laravel 9+):
php artisan test --parallel
7. 常用测试增强工具
- 数据库迁移与填充:测试前自动迁移数据库并填充种子数据(需在测试类中使用
RefreshDatabasetrait):use Illuminate\Foundation\Testing\RefreshDatabase; class ExampleTest extends TestCase { use RefreshDatabase; // ... } - 浏览器测试(Dusk):测试前端交互(如表单提交、JavaScript),需安装Laravel Dusk:
编写Dusk测试(如登录功能):composer require --dev laravel/dusk php artisan dusk:install # 生成Dusk配置运行Dusk测试:namespace Tests\DuskTestCase; use Laravel\Dusk\Browser; use Tests\DuskTestCase; class LoginTest extends DuskTestCase { /** @test */ public function user_can_login() { $this->browse(function (Browser $browser) { $browser->visit('/login') ->type('email', 'user@example.com') ->type('password', 'password') ->press('Login') ->assertPathIs('/home'); }); } }php artisan dusk
注意事项
- 测试数据库应与生产/开发数据库分离,避免数据冲突。
- 使用
RefreshDatabasetrait可自动回滚数据库迁移,确保每次测试从干净状态开始。 - 自动化测试可集成到CI/CD流程(如GitHub Actions),实现代码提交后自动运行测试。
以上就是关于“Debian环境下Laravel测试如何进行”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm