2012-01-18 85 views
5

我是PHPUnit的新用戶,我將現有測試(斷言)轉換爲PHPUnit框架,以提供更好的測試環境和代碼覆蓋率。但是,我需要知道如何嘗試讓PHPUnit使用我們的測試代碼結構。爲PHPUnit配置文件名

我們的項目目錄是類似以下內容:
應用1/
      CREDIT_CARD.class - 自動化測試的CREDIT_CARD.class
- 類命名爲CREDIT_CARD
      CREDIT_CARD.class.test約定      File.php - 應用程序文件
      File.php.test - Auto個配合試驗File.php
      File2.php
      File2.php.test - 爲File2.php自動化測試

應用2/
      ANOTHER_CLASS.class
      ANOTHER_CLASS .class.test
      DifferentFile.php - 應用程序文件
      DifferentFile.php.test - 爲File.php

LIB自動化測試/
      UTIL/
            SHARED_CLASS.class
            SHARED_CLASS。 class.test
      VISUAL/
            VISUAL_TOOL.class
            VISUAL_TOOL.class.test

我需要知道如何配置PHPUnit測試,所以我可以運行測試lib/UTIL/.test(它使用setUp()方法加載類文件),然後通過Application1和Application2測試跟隨(如果成功)lib/VC/ .test。我看到提到一個PHPUnit_xml文件和一個引導文件,但是我找不到一個參考模板來查看這些是否是我需要的。任何幫助,將不勝感激。

我知道文檔引用了除文件名外的一個test.php,但我希望不必改變我們的結構和命名約定,因爲我希望能夠運行這些文件的組合,直到他們都轉換爲PHPUnit框架。更改名稱會導致我們公司的程序變更和開發人員的培訓,我正在努力避免。

在此先感謝您的幫助。

+0

因此'Filename.class.test'確實包含一個擴展PHPUnit_Framework_TestCase的類?我得到那個權利了嗎? – edorian 2012-01-18 20:43:32

+0

是的。類TEST_SOME_CLASS PHPUnit_Framework_TestCase的延伸{ 保護 功能設置() { 如果 require_once(SUBSTR(__ FILE__,0,-5))(class_exists( 'SOME_CLASS')!); //條 '測試' 延伸 } \t公共函數testConstants() \t { \t $這 - >的assertEquals(SOME_CLASS :: TYPE_1,1); $ this-> assertEquals(SOME_CLASS :: TYPE_2,2); \t} } – 2012-01-20 20:15:10

回答

7

因此,您有文件名爲Foo.class.test而不是PHPUnit默認FooTest.php

這應該不是一個大問題,因爲PHPUnit允許您配置哪些文件後綴被視爲「測試」。 Test.php只是默認值。

看一看在xml config part of the docs regard test organisation

你想要的是:那麼

<testsuites> 
    <testsuite name="Our new shiny phpunit test Suite"> 
     <directory suffix=".test">./sourceFolder</directory> 
    </testsuite> 
    </testsuites> 

的PHPUnit將通過包括結束.class.test和離開其他文件作爲是所有文件的源文件夾進行掃描。

+0

由於有一些非類測試文件,這可能需要'suffix =「。test」'。 – 2012-01-18 22:46:37

+0

啊感謝@大衛。好點 – edorian 2012-01-18 23:30:03

+0

感謝您的建議。因爲我有不同的文件,並且沒有太多的PHPUnit使用經驗,所以有可能得到一些帶有這些建議的示例文件?我正在查閱參考資料,主要是尋找一個基本文件,以從試驗和錯誤開始,並檢查文件的理解。 – 2012-01-20 20:11:35