您的位置:首页 > 教育 > 锐评 > 汕头小程序开发_三门峡seo_深圳网络营销网站设计_seo建站技巧

汕头小程序开发_三门峡seo_深圳网络营销网站设计_seo建站技巧

2025/5/15 9:22:20 来源:https://blog.csdn.net/ylong52/article/details/144306439  浏览:    关键词:汕头小程序开发_三门峡seo_深圳网络营销网站设计_seo建站技巧
汕头小程序开发_三门峡seo_深圳网络营销网站设计_seo建站技巧

Laravel 是一个在 Linux 环境下表现非常出色的 PHP 框架,但它在 Windows 环境下可能会遇到一些兼容性和配置问题。为了调试或没试的方便可以在 Windows 环境下进行 Laravel PHPUnit进行本地调试和测试。
本地主要针对断点调试效果非常高效。
在这里插入图片描述

在 Laravel 中,使用 PHPUnit 进行数据库测试通常涉及到设置数据库迁移和种子数据,然后执行实际的查询测试。以下是如何在 ExampleTest 类中接入 MySQL 数据库并查询一个表的步骤:

  1. ** php.ini **
    php的模块已经加载了mongodb.
  • 打开php.ini
    extension=php_mongodb
  • php -v #版本号
  • php -m #查看php-mondgo
    注意本地php版与liunx环境的php版要一致,我这边都是php8.0
  1. ** 检查是否已安装 jenssegers/mongodb 包**
    确认您已经在项目中通过 Composer 安装了 jenssegers/mongodb 包。如果没有,请运行以下命令进行安装:
    composer require jenssegers/mongodb:~3.8.0

  2. 配置数据库:确保 .env 文件中配置了正确的 MySQL 数据库连接信息。
    户名和密码。
    ···
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=your_database_name
    DB_USERNAME=your_database_user
    DB_PASSWORD=your_database_password
    ···

  3. ** config/app.php **
    检查 config/app.php 文件: 确保 config/app.php 文件中的 providers 数组中包含了 Jenssegers\Mongodb\MongodbServiceProvider 类。它应该看起来像这样:
    ‘providers’ => [
    // 其他服务提供者…
    Jenssegers\Mongodb\MongodbServiceProvider::class,
    ],
    发布配置文件: 确保 jenssegers/mongodb 的配置文件已经被发布。如果没有,请运行以下命令:
    php artisan vendor:publish --provider="Jenssegers\Mongodb\MongodbServicePr


  4. 写测试
    :在 ExampleTest 类中编写测试方法来查询表。

<?phpnamespace Tests\Unit;use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\CreatesApplication;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;class ExampleTest extends BaseTestCase
{use CreatesApplication;/*** A basic test example.** @return void*/public function testBasicTest(){$this->assertTrue(true);}public function testMongDb(){// 使用 MongoDB 连接$categories = DB::connection('mongodb');$this->assertNotEmpty($categories); // 确保使用正确的断言方法}
}
  1. 运行测试:使用 PHPUnit 运行你的测试。

.\php8.0.2nts\php.exe E:/case2024/dilu_simple_project/dilu-admin/vendor/phpunit/phpunit/phpunit --configuration E:\case2024\dilu_simple_project\dilu-admin\phpunit.xml --filter “/(Tests\Unit\ExampleTest::testMongDb)( .*)?$/” --test-suffix ExampleTest.php E:\case2024\dilu_simple_project\dilu-admin\tests\Unit --teamcity
Testing started at 10:41 …
PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
```

  1. **在PHPStorm 2023 **运行见截图
    在这里插入图片描述
继续扩展一下正确的代码:
    public function testMongDb(){// 使用 MongoDB 连接// 连接到 MongoDB 的 esg 数据库$connection = DB::connection('mongodb')->getMongoDB('esg');// 获取 chat 集合的所有记录$chats =$connection->chat->find();// 如果你想要将结果转换为数组,可以使用以下代码$chatsArray = [];foreach ($chats as $chat) {$chatsArray[] = (array)$chat;}// 打印结果print_r($chatsArray);$this->assertTrue(true);}

请注意,RefreshDatabase trait 会在每个测试方法前后运行迁移和种子,确保测试环境的数据库是干净的。如果你不想在每个测试方法后都重新运行迁移和种子,可以使用 WithoutMiddleware trait 来跳过中间件。

确保你的测试环境配置正确,并且所有的服务提供者和门面都已正确加载。这样你就可以在 Laravel 的测试环境中安全地测试数据库查询了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com