0

codeception の機能テスト用の DB モジュールを、組み込みサーバーではなく 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 uses PDO to connect to the database. It will pass the "dsn" string straight into the PDO constructor. Thus, according to http://www.php.net//manual/en/ref.pdo-mysql.connection.php, your configuration should be the following in order to connect to the MAMP MySQL Server running on port 8889:

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

この問題を解決するには、2 つのことが必要だと思います。

  1. データベース パラメータを設定するモジュールが同じであることを確認してください。DBはDbとは異なります
  2. MAMP はポート 8889 で MySQL を実行します。文字列でのみ指定するlocalhostdsn、Codeception はポート 3306 (MySQL のデフォルト ポート) で実行されている MySQL インスタンスに接続しようとします。localhostに変更localhost:8889

この問題を自分で修正しました。必要に応じて、さらに明確にするためにコメントしてください。

乾杯

編集

最近、Codeception を使用したプロジェクトを再訪しました。この解決策は私にはうまくいきませんでした。2つの問題に遭遇しました

  1. Timezone Exceptionこれを修正するには...
    • php.iniファイルにタイムゾーンが正しく設定されていることを確認します。/Applications/MAMP/bin/php/php5.x/conf/
    • AND/OR エイリアシングphpを実行して MAMP を使用するalias phpm="/Applications/MAMP/bin/php5.x/bin/php"
  2. [Codeception\Exception\Module] (Exception in Db)これは、主にモジュールの構成によるものです。構成からポート番号を削除しましたが、すべて正常に動作しているようです。
于 2013-09-17T06:11:51.793 に答える