2011-05-13 57 views
1

我剛剛在我的系統上安裝了PHPUnit 3.5,從3.4升級到3.4,我在新版本中遇到了一些麻煩。當我嘗試運行測試時,我總是得到相同的輸出。下面是我得到的,當我嘗試從PHPUnit的手動在命令行上運行StackTest例如,example 4.1PHPUnit錯誤 - 無法找到類

> phpunit StackTest 

X-Powered-By: PHP/5.2.17 
Content-type: text/html 

PHPUnit 3.5.13 by Sebastian Bergmann. 

Class StackTest could not be found in StackTest.php. 

更糟糕的是,當我嘗試從Web瀏覽器中運行它,我得到以下的輸出:

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /path/to/tests/StackTest.php on line 2 

有誰知道如何設置?謝謝。

回答

1

聽起來像PHPUnit不在您的包含路徑。爲了方便地測試這一點,試試這個:

$ phpunit --include-path /path/to/PHPUnit StackTest 
+0

不幸的是,這並沒有奏效。我嘗試用phpunit應用程序的路徑和PHPUnit支持文件(PEAR放入不同的目錄)替換/ path/to/PHPUnit。沒有運氣。 – jay 2011-05-13 20:23:20

+0

如果您的以前的版本工作,降級。 :-) – 2011-05-13 20:30:27

0

嘗試

pear upgrade pear 

(如果它要求你到渠道升級這麼做)

然後

pear install --force --alldeps phpunit/phpunit 

,然後再試一次。

3.5升級加上一個buggy梨安裝程序(1.9.1有一個有點煩人的錯誤,所以確保你真的在1.9.2)有時可以是一個痛苦。

4

我遇到了你在Windows上描述的問題。 問題是在文件梨\上線131的它是由不同的驅動器盤符情況下,文件名中的條件造成的PHPUnit \亞軍\ StandardTestSuiteLoader.php

if ($class->getFileName() == realpath($suiteClassFile)) { 

我簡單的解決方法是此行更改爲不區分大小寫

if (strtolower($class->getFileName()) == strtolower(realpath($suiteClassFile))) { 
1

我覺得你的PHPUnit的類名爲StackTest,你要測試的類也被命名StackTest。這將導致PHPUnit中的路徑衝突。

使這兩個名稱不同,你會得到解決。

0

在我而言,這個問題引起通過require_once包括源文件中的PHPUnit:

require_once 'phar://phpunit.phar'; 

刪除這一行做了我的測試情況下運行的。

0

我能解決這個問題。這是我上課的結果。我在參數數組中使用了我的參數,就像這樣工作。但是還有很多類路徑等問題,我必須先解決。看看這裏的工作解決方案(http://www.siteconsortium.com/h/p1.php?id=php002)。

$command = new PHPUnit_TextUI_Command(); 
$command->run(array('test', 'testCase', 'c:\workspace\project\testCase.php'), true); 
1
phpunit MyTestClass 

在我的情況

  • MyTestClass。PHP的應該是在項目的主目錄
  • 它應該開始用長PHP的開放標籤(<?php,不<?
  • 它應該包含class MyTestClass extends PHPUnit_Framework_TestCase {

我知道這是最有可能不是最好的方式,只是指向一個初學者開始。