2009-09-10 121 views
1

我正在使用Symfony + Doctrine + PHPUnit和NetBeans IDE。這裏是我目前的單元測試方法。使用symfony + doctrine進行單元測試+ PHPUnit

  • 設置()函數.yml文件
  • 拆解()函數模型刪除所有數據加載測試夾具。這是通過循環遍歷我的所有模型的名稱陣列到類似Doctrine_Query :: delete($ modelName) - > execute()

這似乎工作,但我只是好奇,如果這是正確的方法來做到這一點。我基本上是通過指定模型/表格'刪除所有'從每個測試函數清除所有表格。問題1:我只是想知道這是否是正確的方法...問題2:這在Netbeans IDE中很好地工作,但似乎不能通過「./symfony test:unit」工作。我錯過了什麼或者CLI只適用於石灰?

+0

要發佈更新的答案,Symfony 2使用PHPUnit進行測試。 您可以[查看手冊](http://symfony.com/doc/current/book/testing.html)瞭解更多詳情。 – Potherca 2012-11-29 14:40:21

回答

1

./symfony test:unit運行symfonys自己的測試套件,它使用lime作爲測試框架,而不是phpUnit。

netbeans使用phpUnit作爲其集成的測試支持。希望NetBeans將在symfony測試套件中添加測試套件,在netbeans中的symfony suport 6.8

0

如果你想使用phpunit和symfony簽出:PHPUnit plugin只需注意這隻適用於1.2.x,它似乎適用於1.4 .x這是我目前正在使用的工作檢查:Another PHPUnit plugin這最後一個是在測試版,但根據作者,它適用於1.4.x,我會很快嘗試它,所以如果我能記得,我會回到這裏來提出我的發現。如果你不想安裝它,說實話不難退出,所以試着很容易。

如果您碰巧試過它,請張貼您的發現,我真的很想聽聽您的想法。我發現石灰是跛腳(HAH!),因爲它只是嘲笑一件苦差事。

0

我用PHPUnit外部嘗試它,沒有插件。我正在使用Doctrine。我有一個很大的問題。如果我運行ONE PHPUnit(由我寫的)tes方法,那太棒了。第二個,不太好。這可能是我使用Doctrine的方式。即使我從數據庫中刪除了所有內容(在PHPUnit方法調用之間)並恢復了fixture文件,全部在setup()中,DOCTRINE記錄了以前的值。無論我是否刷新連接,取消設置錯誤'記住'的父對象,refreshRelated()等等,當我對關係進行第一次賦值時,仍然會得到舊值。

$ parent = new ParentType; //設置父值。 $ child = new ChildType //設置子值 $ child ['Parent'] = $ parent; $ child-> save();

該數據庫反映了一切正常,它是PHPUnit中的Doctrine無法正常工作。我還沒有嘗試過使用PHPUnit,畢竟,在使用之前進行測試,對吧?但我可能必須這樣做,看看它是Doctrine還是PHPUnit