Я запускаю конвейер bitbucket для выполнения всех модульных тестов с модулем PHP. Когда я выполняю тест на локальном, они все проходят. Но на конвейере bitbucket это всегда терпит неудачу. В этом случае тесты связаны с внешней службой, которую мы проверяем.
<?php
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use MyService;
class MyTest extends TestCase
{
/**
* Test the dummies in this new system
*
* @return void
*/
public function testDumies()
{
$games = DummyService::getDummies();
$this->assertTrue(count($dummies) > 0);
}
public function testDummiesOfUser()
{
$dummies = DummyService::getDummiesOfUser('someemail@mail.com');
$this->assertTrue(count($dummies) > 0);
}
}
А вот сервис для получения манекенов
<?php
namespace App\Services;
class DummyService {
/**
* Get dummies
*
* @return void
*/
public function getDummies() {
$collection = [];
$games = $this->getDummiesInUrl('http://my-project/api/v1/platform/dummies');
foreach($dummies as $dummy) {
$collection[] = $dummy;
}
return $collection;
}
/**
* Retrieves the dummies in url
*
* @param string $endpoint
* @return array
*/
public function getDummiesInUrl($endpoint) {
$client = new \GuzzleHttp\Client();
$res = $client->request('GET', $endpoint);
$body = $res->getBody();
$body = json_decode($body, true);
$data = $body['data'];
$dummies = $data['dummies'];
return $dummies;
}
/**
* Returns the dummies of an user
*
* @param string $email
* @return array
*/
public function getDummiesOfUser($email) {
$collection = [];
$dummies = $this->getDummiesOfUserInUrl('http://myroute/api/v1/platform/dummies/user', $email);
foreach($dummies as $d) {
$collection[] = $d;
}
return $collection;
}
/**
* Get gameplays in url
*
* @param string $endpoint
* @param string $email
* @return array
*/
public function getDummiesOfUserInUrl($endpoint, $email) {
$client = new \GuzzleHttp\Client();
$res = $client->request('GET', $endpoint, ['query' => ['email' => $email]]);
$body = $res->getBody();
$body = json_decode($body, true);
$data = $body['data'];
$dummies = $data['dummiess'];
return $dummies;
}
}
Но когда это было проверено на конвейере bitbucket, я получил следующие ошибки:
PDOException: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
и Caused by PDOException:PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]