diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9660c8094..29beed7fd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ Exclamation symbols (:exclamation:) note something of importance e.g. breaking c
### Added
- Replaced 'generic' and 'genericmessage' strings with Telegram::GENERIC_COMMAND and Telegram::GENERIC_MESSAGE_COMMAND constants (@1int)
- Bot API 4.8 (Extra Poll and Dice features).
+- Allow custom MySQL port to be defined for tests.
### Changed
### Deprecated
### Removed
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index f2a26b57b..b56d673b0 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -23,6 +23,7 @@
+
diff --git a/tests/unit/ConversationTest.php b/tests/unit/ConversationTest.php
index 3845377d8..f0bcec58f 100644
--- a/tests/unit/ConversationTest.php
+++ b/tests/unit/ConversationTest.php
@@ -33,6 +33,7 @@ protected function setUp(): void
{
$credentials = [
'host' => PHPUNIT_DB_HOST,
+ 'port' => PHPUNIT_DB_PORT,
'database' => PHPUNIT_DB_NAME,
'user' => PHPUNIT_DB_USER,
'password' => PHPUNIT_DB_PASS,
diff --git a/tests/unit/TestHelpers.php b/tests/unit/TestHelpers.php
index f08392baa..39d711087 100644
--- a/tests/unit/TestHelpers.php
+++ b/tests/unit/TestHelpers.php
@@ -228,7 +228,11 @@ public static function startFakeConversation()
*/
public static function emptyDb(array $credentials)
{
- $dsn = 'mysql:host=' . $credentials['host'] . ';dbname=' . $credentials['database'];
+ $dsn = 'mysql:host=' . $credentials['host'] . ';dbname=' . $credentials['database'];
+ if (!empty($credentials['port'])) {
+ $dsn .= ';port=' . $credentials['port'];
+ }
+
$options = [\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'];
$pdo = new \PDO($dsn, $credentials['user'], $credentials['password'], $options);