2014-03-19 14 views
0

如何在PHPunit中使用./?我試過幾種方法這樣的:如何在PHPUnit中使用絕對路徑?

mkdir('./foo)

它總是失敗,但它是通過瀏覽器工作。

但是如果我使用:

mkdir('../../../foo')

這是通過PHPUnit的工作,但錯誤通過瀏覽器。

但是如果我使用:

mkdir(dirname(__FILE__).'../../../foo');

在所有不工作。

回答

0

嘗試此,

MKDIR(目錄名(FILE ) '/ ../../.. /富');

+0

它也不起作用 – mockie

1

dirname(FILE)將爲您提供文件位置的絕對路徑。這可能與命令行和瀏覽器不同。讓我們假設網頁位於文件系統上的/ apps /網站(或Windows上的C:\ apps \ website)上進行基本安裝。

您的Web服務器LIKEY服務於網站的默認值(簡單配置),因此

http://localhost/

是URL。因此,現在Web服務器和命令行對於源代碼文件具有不同的路徑。

如果index.php文件是在網站目錄,目錄名(FILE)會給你不同的結果:

瀏覽器:的index.php,
命令行:/apps/website/index.php

考慮到這一點,../foo.php也將在不同的相對目錄中,這取決於你從哪裏運行它。

瀏覽器:無效的,因爲你不能去上面/ 命令行:/apps/foo.php(/apps/website/../foo.php)

當寫你的測試,你需要知道你在結構中的位置,以及相對路徑到達你的位置的位置,然後相應地改變相對路徑。假設你有一個lib子目錄網站(/應用/網站/ LIB)和PHPUnit的測試是在該目錄中,並且希望從父foo.php,那麼你可以使用

dirname(__FILE__) . '/../foo.php'); //Assuming __FILE__ is /apps/website/lib/file.php 

目錄名()一般沒有結尾的斜槓,所以在組合剩餘的相對路徑時需要添加它。

相關問題