PHPUnit需要一个phpunit.xml的绝对路径

时间:2014-02-06 10:06:22

标签: macos unix terminal phpunit

我试图通过CLI使用phpunit,以便从Netbeans迁移到Sublime Text。 给phpunit提供phpunit.xml文件的路径时,我有一个最奇怪的问题:它只接受绝对路径并拒绝任何相对路径。 给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

我需要这个才能在Sublime Text中使用phpunit插件,它将phpunit.xml文件提供给命令行,并带有要测试的文件的路径。

我的配置:

  • OSX 10.9.1
  • PHP 5.4.24(通过brew)
  • PHPUnit 3.7.28(通过brew)(也用phar测试)

知道为什么会这样做吗?

1 个答案:

答案 0 :(得分:1)

我终于发现我的测试出了什么问题;在我的bootstrap.php文件中,我这样做:

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

因此,类和自动加载会找到与我的测试类分开的实际类。 如果我删除这一行,测试会崩溃,因为它找不到我的类,但至少我的测试被执行了。 我将在include路径上工作,而不是更改目录,这样我的测试就会再次运行。