2014-02-06 125 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