php Mysql函数在Laravel测试中失败

camsedfj  于 2023-01-29  发布在  PHP
关注(0)|答案(2)|浏览(106)

我在下面有一个从数据库中检索组的查询;它工作正常,除了当我运行它通过害虫php测试用例,并击中控制器;测试失败并显示Illuminate\Database\QueryException: SQLSTATE[HY000]: General error: 1 no such function: YEAR
下面是我的sql查询

Group::query() 
    ->selectRaw("YEAR(groups.created_at) as year,
                 MONTH(groups.created_at) as month, 
                 DATE_FORMAT(groups.created_at, '%b') as short_month_format,
                 count('*') as count"
            )
            ->whereIn('id', $ids)
            ->get();

下面是我的pest php测试用例

test('authenticated user with permission will see analytics page ',function(){
    $permission = 'permission';

    actingWithPermission($this->user, $permission)
    ->get($this->route)
    ->assertStatus(302)
    ->assertDontSee("Text not to see goes here", false)
    ;
});

我怎样才能修复以上的mysql错误?

bvn4nwqk

bvn4nwqk1#

计数('id ')错误,请使用计数('id')或其他字段。

w6mmgewl

w6mmgewl2#

通过将phpunit.xml中的DB CONNECTIONsqlite更改为mysql,我能够解决上述问题。
在我的phpunit.xml中

.........
        <server name="APP_ENV" value="testing"/>
        <server name="BCRYPT_ROUNDS" value="4"/>
        <server name="CACHE_DRIVER" value="array"/>
        <server name="DB_CONNECTION" value="mysql"/> 
        <server name="DB_DATABASE" value="database-name"/>
             .........

相关问题