2016-09-03 8 views
0

ユニットテストで自動テストを作成するとき。私はこのエラーが発生します。Yii2ユニットテスト::ユーザー '何か' @ 'localhost'(パスワードはNO)のアクセスが拒否されました

私のコードは、ユニットテスト

function testSavingUser() 
{ 
    $user = new User(); 
    $user->auth_key='value'; 
    $user->password_hash='value'; 
    $user->password_reset_token='value'; 
    $user->email='value'; 
    $user->status=1; 
    $user->first_name='value'; 
    $user->last_name='value'; 
    $user->image='value'; 
    $user->role_id=1; 
    $user->created_date='2016-08-31 16:57:10'; 
    $user->updated_date='2016-08-31 16:57:10'; 

    $user->save(); 
    $this->assertEquals('Miles Davis', $user->getFullName()); 
    $this->tester->seeInDatabase('users', ['name' => 'Miles', 'surname' => 'Davis']); 
} 

この私の設定ファイルであるfunctional.suite.ymlで

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/web.php'), 
    //require(__DIR__ . '/main-local.php'), 
    [ 
     'id' => 'app-tests', 
     'components' => [ 
      'db' => [ 
       'class' => 'yii\db\Connection', 
       'dsn' => 'mysql:host=' . getenv('DB_HOST'). ';dbname=' . getenv('DB_NAME'), 
       'username' => getenv('DB_USER'), 
       'password' => getenv('DB_PASSWORD'), 
       'charset' => 'utf8', 
      ], 
     ]   
    ] 
); 
return $config; 

class_name: FunctionalTester 
    modules: 
     enabled: 
     - Yii2: 
      configFile: 'config/test.php' 

codeceptランで私のテストを実行しようとしていますこのようなエラーが表示されます

エラーの

[yii\db\Exception] SQLSTATE[28000] [1045] Access denied for user 'something'@'localhost' (using password: NO)

+0

「何か」ユーザーがデータベースにアクセスできますか? –

+0

はい私はユーザーが –

+1

パスワードを使用してアクセスしていると確信しています:NOはあなたのデータベースパラメータに何か問題があることの手掛かりです – Naktibalda

答えて

1

考えられる理由:

  1. 提供された資格情報は、互いに正しくない、または混合されています。それらを正確にチェックしてください。
  2. getenvコールでは、環境変数にアクセスまたは抽出されません。キーが正しいかどうかを確認し、正しい値が返されていることを確認します(var_dumpのようなものを使用できます)。
  3. このデータベースにアクセスする権限がありません。例えば、関連するquestionに設定する方法を見ることができます。
+0

それはすべて間違いありません –

関連する問題