2013-08-16 21 views
0

有沒有辦法將代碼中的功能測試數據庫模塊指向您的MAMP MySQL服務器而不是內置服務器?Codeception - 將數據庫指向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 

回答

-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

+0

但是,這是如何指向MySQL服務器 - 問題是,測試嘗試和訪問我的內置服務器,所以我不能測試我的數據庫上MAMP –

-1

我會仔細檢查你的mysql表內的轉儲

一旦安裝只需添加類似這對你的測試

$I->seeInDatabase('users', array('name' => 'Davert', 'email' => '[email protected]')); 

Thiss將檢查「用戶」表,並尋找一行作爲數組中提供的姓名&電子郵件 - 爲我工作。

+0

是的,我知道如何測試數據進入 - 我只是不知道如何將它指向我的MAMP數據庫而不是內置的MYSQL服務器 –

+0

我可能會看看Google Groups ..可能是一些CodeCeption組,可以在那裏幫助你 – Zabs

-1

兩件事情,我認爲,可以解決這個問題您的問題

  1. 確保模塊要爲其設置數據庫參數是一樣的。 DBDb的
  2. MAMP運行在端口8889的MySQL的。如果你只在dsn字符串指定localhost不同,Codeception將嘗試連接到端口3306,這是MySQL的默認端口上運行的MySQL實例。更改localhostlocalhost:8889

我只是固定的這個問題我自己。如有需要,請提供進一步說明意見。

乾杯

編輯

最近,我重新審視我所用Codeception項目。該解決方案對我無效。我遇到了兩個問題

  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)這主要是因爲模塊的配置。我從我的配置中刪除了端口號,似乎一切正常。
+0

謝謝,似乎似乎合理會給它一個旋轉l並且讓你知道 –

+0

這總是返回一個「未知的MySQL服務器主機localhost:8889'」 –

+0

@AshleyBanks'8889'是我的MAMP的MySQL服務器運行的端口。如果你的端口沒有在8889端口上運行,這個錯誤就足夠了。在'Preferences - > Ports'中檢查你的MAMP端口並相應地設置端口。乾杯 – iGbanam

2

Codeception使用PDO連接到數據庫。它會將「dsn」字符串直接傳入PDO構造函數。因此,根據http://www.php.net//manual/en/ref.pdo-mysql.connection.php,你的配置應該是如下,以連接到MAMP MySQL服務器端口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 
0

這是固定的問題對我來說。 在MAMP我票的盒子 「允許MySQL的網絡接入」 enter image description here

在codeception.yml我DSN設置爲: DSN: 'MySQL的:主機= 127.0.0.1,端口= 3306;數據庫名= la51'

相關問題