0

有没有办法将代码接收中功能测试的数据库模块指向您的 MAMP MySQL 服务器而不是内置服务器?

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
4

5 回答 5

2

Codeception 使用 PDO 连接到数据库。它将“dsn”字符串直接传递给 PDO 构造函数。因此,根据http://www.php.net//manual/en/ref.pdo-mysql.connection.php,您的配置应该如下,以便连接到在端口 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
于 2014-06-19T13:12:41.423 回答
0

这就是为我解决问题的原因。在 MAMP 中,我为“允许网络访问 MySQL”框打了票 在此处输入图像描述

我在 codeception.yml 中的 dsn 设置是: dsn: 'mysql:host=127.0.0.1;port=3306;dbname=la51'

于 2015-10-06T10:00:18.007 回答
-1

我会在转储中仔细检查你的 mysql 表

设置完成后,只需将类似的内容添加到您的测试中

$I->seeInDatabase('users', array('name' => 'Davert', 'email' => 'davert@mail.com'));

这将检查“用户”表并查找数组中提供的名称和电子邮件的行 - 对我有用。

于 2013-08-20T08:22:51.723 回答
-1

你有没有试过这个 - 也可能对你有用..

class_name: TestGuy
modules:
enabled: [Filesystem, TestHelper, WebHelper, PhpBrowser]
config:
    PhpBrowser:
        url: 'http://localhost/yourapp/'
        curl:
             CURL_RETURNTRANSFER: true

让我知道这对你有用:)

http://codeception.com/docs/modules/PhpBrowser

于 2013-08-16T10:54:08.960 回答
-1

有两件事——我相信——可以解决你的问题

  1. 确保您为其设置数据库参数的模块是相同的。DB不同于Db
  2. MAMP 在端口 8889 上运行其 MySQL。如果您仅localhostdsn字符串中指定,Codeception 将尝试连接到在端口 3306 上运行的 MySQL 实例——这是 MySQL 的默认端口。更改localhostlocalhost:8889

我自己解决了这个问题。如果需要,请发表评论以获得进一步的说明。

干杯

编辑

最近,我重新访问了我使用 Codeception 的项目。这个解决方案对我不起作用。我遇到了两个问题

  1. Timezone Exception您可以通过以下方式解决此问题...
    • 确保在您的php.ini文件中正确设置时区,该文件通常位于/Applications/MAMP/bin/php/php5.x/conf/
    • 和/或别名php来使用 MAMP's 通过做alias phpm="/Applications/MAMP/bin/php5.x/bin/php"
  2. [Codeception\Exception\Module] (Exception in Db)这主要是因为模块的配置。我从配置中删除了端口号,一切似乎都正常。
于 2013-09-17T06:11:51.793 回答