2016-09-03 2 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']); 
} 

이 내 config 파일에 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

그게 전부입니다. 맞습니다. –