我在使用XAMPP的MySQL和本地MySQL进行测试时遇到麻烦。每当我运行测试时,数据库连接始终位于本地MySQL而非XAMPP上。
我已经在composer的目录中安装了PHPUnit。
我在连接中使用PDO。
ConfigDB.php
namespace App\Config;
use \PDO;
class ConfigDB
{
private static $password = ''; //XAMPP has no password
//private static $password = '******'; Local Machine MySQL password
private static $username = 'root';
private static $host = '127.0.0.1';
private static $database = 'tododb';
private static $charSet = 'utf8mb4';
public function connect(): PDO
{
try {
$dsn = "mysql:host=". self::$host . ";dbname=" . self::$database . ";charset=" . self::$charSet;
$pdo = new PDO($dsn, self::$username, self::$password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
return $pdo;
} catch (\PDOException $e) {
echo "Connection failed: " . $e->getMessage() . "\n";
}
}
}
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
colors="true"
verbose="true"
stopOnFailure="false">
<testsuites>
<testsuite name="Test suite">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
</phpunit>
如果我尝试将密码与本地MySQL一起使用,则可以使用,但数据库不存在。我知道我可以导入它,但是我想尝试一下。