2014-02-06 123 views
0

我試圖通過CLI才能使用PHPUnit的從NetBeans中遷移到崇高的文本。 當給phpunit phpunit.xml文件的路徑時,我有最奇怪的問題:它只接受絕對路徑並拒絕任何相對路徑。 給予phpunit.xml文件中的任何相對路徑導致此錯誤:PHPUnit的需要的絕對路徑phpunit.xml

無法讀取 「phpunit.xml」

實施例:

Maximes-MacBook-Pro:Frontoffice mbritto$ pwd 
/Users/mbritto/Documents/Frontoffice 
Maximes-MacBook-Pro:Frontoffice mbritto$ phpunit -c phpunit.xml 
Could not read "phpunit.xml". 

的phpunit.xml是存在於此文件夾中,並且可以由我的用戶讀取。如果我不給文件路徑 它的實際工作:

Maximes-MacBook-Pro:Frontoffice mbritto$ phpunit 
PHPUnit 3.7.28 by Sebastian Bergmann. 

Configuration read from /Users/mbritto/Documents/Frontoffice/phpunit.xml 

#Preparing Application Unit Tests 
.^C 

或者,如果我給的絕對路徑文件:

Maximes-MacBook-Pro:Frontoffice mbritto$ phpunit -c /Users/mbritto/Documents/Frontoffice/phpunit.xml 
PHPUnit 3.7.28 by Sebastian Bergmann. 

Configuration read from /Users/mbritto/Documents/Frontoffice/phpunit.xml 

#Preparing Application Unit Tests 
..^C 

我爲了使用PHPUnit的需要這Sublime Text中的插件,它將phpunit.xml文件提供給命令行,其中包含要測試的文件的路徑。

我的配置:

  • OSX 10.9.1
  • PHP 5.4.24(經由BREW)
  • PHPUnit的28年3月7日(通過釀造)(也用藥業股份測試)

任何想法爲什麼會這樣做?

回答

1

我終於發現了什麼是錯的我的測試;在我的bootstrap.php文件我這樣做:

chdir(dirname(__FILE__) . "/../src/"); 

使類和自動加載會發現,從我的測試類分開實際的類。 如果我刪除這一行,測試會崩潰,因爲它找不到我的類,但至少會執行我的測試。 我將在包含路徑上工​​作,而不是更改目錄,以便我的測試再次運行。

+0

我在我的項目的根目錄中的引導文件,所以當我啓動PHPUnit的,我在我想類似的,當我運行的應用程序(樹的頂部)的目錄,所以一切都可以發現。因爲他們知道他們在應用程序中的位置(lib在應用程序下,DB在lib下,因此應用程序包含lib/DB),所以我的常規包括/需要始終使用相對路徑。 –

+1

感謝您的提示,我的src和我的測試文件夾是兄弟姐妹,在我的服務器上src文件夾是我的項目的根。這就是爲什麼我需要執行測試,就好像我在src文件夾中一樣,以便包含文件,同時也能夠加載資源(圖像等)。我最終最終修改了引導文件中的include路徑,並修改了我的頁面,以便它們從相對位置(而不是項目根目錄)訪問資源。 – mbritto