Laravel 测试 - 该名称已被使用
Posted
技术标签:
【中文标题】Laravel 测试 - 该名称已被使用【英文标题】:Laravel Testing - the name is already in use 【发布时间】:2021-02-08 10:57:46 【问题描述】:我在使用 phpunit 时遇到问题,我不知道为什么我在文件正常的情况下会出现这种错误, 我的理论是,当测试运行时,它会重新包含名称文件,而不是检查文件是否已经被导入,那么它不应该重新发布。
我尝试在 CreateApplications 上执行 require_once 但它会导致错误,
由于错误,我无法在一个类上测试所有测试用例
Cannot declare class <class omitted>, because the name is already in use in <file omitted>
<?php
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
trait CreatesApplication
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
$app = require_once(__DIR__.'/../bootstrap/app.php');
$app->make(Kernel::class)->bootstrap();
return $app;
我的问题是,如何修复此错误或如何不重新导入课程?如何预防?
到目前为止,我在 PHPUnit 上使用 --filter
选项来调用测试类上的特定方法
【问题讨论】:
【参考方案1】:更新
有一个自定义包,它使用include
,这会导致错误,
就我而言,它位于自定义包服务提供者的引导方法中
<?php
namespace CustomPackage;
use Illuminate\Support\ServiceProvider;
class CustomPackageProvider extends ServiceProvider
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
...
include(__DIR__.'/Nem/NemPhp.php');
/**
* Register any application services.
*
* @return void
*/
public function register()
所以将include
更改为require_once
解决问题
报告中的错误不太清楚,这就是为什么我很难质疑理论是如何发生的,因为一个错误:)
【讨论】:
以上是关于Laravel 测试 - 该名称已被使用的主要内容,如果未能解决你的问题,请参考以下文章
Larave使用composer安装无反应,提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Compose
Larave使用composer安装无反应,提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Compose