2011-03-10 73 views
1

我知道這可能會被問到很多,但我沒有在很長一段時間使用過PHP,我發現自己再一次摔跤了它的路徑行爲幷包含它。PHPUnit安裝程序和PHP目錄問題

我已經通過Pear安裝了PHPUnit,因爲我建議將Pear目錄添加到我的php.ini文件中,以便我可以在全局中包含PHPUnit.php。然而,PHPUnit.php需要包括它自己的目錄中的幾個文件,當我在我的測試目錄中引用PHPUnit.php:

require_once 'PHPUnit.php'; 

它試圖爲包括相對於檢驗目錄,或將這些文件在php.ini中指定的梨目錄。

Fatal error: require_once() [function.require]: Failed opening required 'PHPUnit/TestCase.php' 
(include_path='.:/home/data/pear/php') in /[snip]/domains/test.domainname.com/html/project/tests/PHPUnit.php on line 47 

記得這些問題處理回用PHP的一天,但我覺得我不該; t有修改路徑PHPUnit的包含文件,使這項工作...

+1

不知道,如果這很重要,但'PHPUnit_TestCase'用於PHPUnit 1.x(或者至少<3.x)。你應該使用'PHPUnit_Framework_TestCase'。 – KingCrunch 2011-03-10 23:28:13

+0

,你不應該「需要'PHPUnit.php'',這將會爲你完成。爲了確保:你做了'pear install phpunit/PHPUnit'(版本3.5.x),而不是'pear install phpunit'因爲那是一個非常舊的版本:) – edorian 2011-03-11 08:28:14

+0

你知道,我剛剛意識到我一直在尋找關於Pear網站的文檔,這是令人悲傷的過時,並不奇怪這給我帶來麻煩,似乎有很多進展在這之後,我上次使用它! – 2011-03-11 16:49:45

回答

1

PHPUnit的用途典型的類名稱爲路徑轉換自動加載器,它用目錄分隔符替換類名稱中的下劃線。

因此,在您的代碼中,您已經引用了PHPUnit_TestCase,它已經自動嘗試將TestCase.php文件包含在PHPUnit目錄中,但該文件/類不存在。

由於KingCrunch中的評論稱,使用類PHPUnit_Framework_TestCase的是

如果您在PHPUnit的目錄看,有一個框架目錄包含TestCase.php

Writing Tests for PHPUnit

<?php 
class StackTest extends PHPUnit_Framework_TestCase 
{ 
+0

雅各布,你是絕對正確的。我已經安裝了最新版本,但一直在嘗試像舊版本一樣使用。謝謝你的好評。 ,簡明地瞭解當前版本的使用方式,謝謝! – 2011-03-11 16:53:53