Php Codeception-将数据库指向MAMP MySQL服务器
有没有办法将codeception中用于功能测试的DB模块指向MAMP MySQL服务器而不是内置服务器Php Codeception-将数据库指向MAMP MySQL服务器,php,mysql,macos,codeception,Php,Mysql,Macos,Codeception,有没有办法将codeception中用于功能测试的DB模块指向MAMP MySQL服务器而不是内置服务器 class_name: TestGuy modules: enabled: [Db, Filesystem, TestHelper] config: Db: dsn: 'mysql:host=localhost;dbname=testdb' user: 'root'
class_name: TestGuy
modules:
enabled: [Db, Filesystem, TestHelper]
config:
Db:
dsn: 'mysql:host=localhost;dbname=testdb'
user: 'root'
password: 'root'
dump: 'tests/_data/dump.sql'
populate: true
cleanup: false
你试过这个吗-可能对你也有用
class_name: TestGuy
modules:
enabled: [Filesystem, TestHelper, WebHelper, PhpBrowser]
config:
PhpBrowser:
url: 'http://localhost/yourapp/'
curl:
CURL_RETURNTRANSFER: true
让我知道这对你是如何起作用的:)
我会仔细检查转储中的mysql表 安装完成后,只需将类似的内容添加到测试中
$I->seeInDatabase('users', array('name' => 'Davert', 'email' => 'davert@mail.com'));
这将检查“用户”表,并查找数组中提供的带有名称和电子邮件的行-适用于我。两件事-我相信可以解决您的问题
dsn
字符串中指定localhost
,Codeception将尝试连接到在端口3306上运行的MySQL实例,该端口是MySQL的默认端口。将localhost
更改为localhost:8889
时区异常
您可以通过。。。
- 确保在
文件中正确设置时区,该文件通常位于php.ini
/Applications/MAMP/bin/php/php5.x/conf/
- 和/或使用别名
通过执行php
alias phpm=“/Applications/MAMP/bin/php5.x/bin/php”
[Codeception\Exception\Module](数据库中的异常)
这主要是因为模块的配置。我从配置中删除了端口号,一切似乎都正常Codeception使用PDO连接到数据库。它将把“dsn”字符串直接传递到PDO构造函数中。因此,根据,为了连接到运行在端口8889上的MAMP MySQL服务器,您的配置应如下所示:
class_name: TestGuy
modules:
enabled: [Db, Filesystem, TestHelper]
config:
Db:
dsn: 'mysql:host=localhost;port=8889;dbname=testdb'
user: 'root'
password: 'root'
dump: 'tests/_data/dump.sql'
populate: true
cleanup: false
这就是我解决问题的方法。 在MAMP中,我将在“允许网络访问MySQL”框中设置罚单 codeception.yml中的dsn设置为:
dsn:'mysql:host=127.0.0.1;端口=3306;dbname=la51'但这是如何指向MySQL服务器的?问题是,测试尝试访问我的内置服务器,因此我无法在MAMPYeah上测试我的数据库。我知道如何测试数据进入-我只是不知道如何将其指向我的MAMP数据库,而不是内置MySQL服务器。我可能会查看Google Group。。可能有一些CodeCeption组可以帮助您。谢谢,似乎有道理,它会让您知道这总是返回一个“未知的MySQL服务器主机'localhost:8889'”@AshleyBanks
8889
是my MAMP的MySQL服务器运行的端口。如果您的端口未在8889上运行,则此错误就足够了。在首选项->端口中检查MAMP端口,并相应地设置端口。谢天谢地,这对我不起作用了。“你找到解决办法了吗,@AshleyBanks?”?