【问题标题】:Laravel Sail Separate Testing DatabaseLaravel Sail 独立测试数据库
【发布时间】:2021-07-19 02:04:37
【问题描述】:
curl -s "https://laravel.build/example-app" | bash

我用上面的命令安装了laravel8和sail up

一切都很好。

不过,我也想测试一下 mysql。

mysql_test:
  image: "mysql:8.0"
  environment:
    MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
    MYSQL_DATABASE: "${DB_DATABASE}"
    MYSQL_USER: "${DB_USERNAME}"
    MYSQL_PASSWORD: "${DB_PASSWORD}"
    MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  networks:
    - sail

我在上面添加到 docker-composer.yml 并运行 sail up

DB_CONNECTION=mysql
DB_HOST=mysql_test
DB_PORT=3306
DB_DATABASE=laravel8_test
DB_USERNAME=sail
DB_PASSWORD=password

.env.testing

但是当我运行sail test 时,我得到一个错误

SQLSTATE[HY000] [1044] Access denied for user 'sail'@'%' to database 'laravel8_test' (SQL: select * from `users`)

我运行的测试是

public function test_example()
    {
        dd(User::all());
        $response = $this->get('/');

        $response->assertStatus(200);
    }

我还应该做什么?

【问题讨论】:

    标签: laravel testing laravel-sail


    【解决方案1】:

    据我所知,Laravel 不会创建数据库。尝试从数据库客户端创建数据库,例如 dbeaver,然后让迁移运行。悬停时最好使用memory driver for testing

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 2021-06-11
      • 1970-01-01
      • 2021-04-10
      • 2021-04-21
      • 2011-03-09
      • 2015-02-08
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多