2015-09-23 56 views
0

所以,這裏是我的項目

無法運行PHPUnit的測試,不合格開口所需的類

project_name 
    /classes 
     Calculator.php 
    /test 
     CalculatorTest.php 
    /vendor 
     // Related composer/phpunit etc ... stuff 
    composer.json 
    composer.lock 

的strucuture Calculator.php中

<?php 
class Calculator{ 
    public function double($input){ 
     return $input * 2; 
    } 
} 

CalculatorTest.php的

<?php 

require_once '../classes/Calculator.php'; 

class CalculatorTest extends PHPUnit_Framework_TestCase{ 

    public $testClass; 

    public function setUp(){ 
     $testClass = new Calculator; 
    } 

    public function testDouble(){ 
     $result = $testClass->double(2); 
     $this->assertEquals(4, $result);   
    } 

} 

當我運行PHPUnit的../../test,我得到以下錯誤:

Warning: require_once(../classes/Calculator.php): failed to open stream: No such file or directory in C:\wamp\www\phpunit\test\CalculatorTest.php on line 3

Fatal error: require_once(): Failed opening required '../classes/Calculator.php' (include_path='.;C:\php\pear') in C:\wamp\www\phpunit\test\CalculatorTest.php on line 3

我無法找到一個解決。你有什麼主意嗎?

編輯
得了吧,忘了spl_autoload_register測試類中:

spl_autoload_register(function ($class) { 
    require_once 'classes/' . $class . '.php'; 
}); 

回答

0

你在不同的頁面中打開該文件。所以路徑不正確。

試試這個:

require_once dirname(__FILE__) . '/classes/Calculator.php 

如果計算器是在同一個文件夾類作爲計算器的測試比你不需要設置路徑/班

+0

我不明白你的意思。你能更精確嗎? – Mornor

+0

您正在打開C:\ wamp \ www \ phpunit \ test \ CalculatorTest.php,並將路徑設置爲require_once'../classes/Calculator.php';這意味着你要去測試文件夾之外(../),我認爲你的文件夾類在測試文件夾內。嘗試沒有../ so require_once'classes/Calculator.php'; –

+0

它的工作原理!但我可以向你保證,我的類文件夾不在我的測試文件夾中... – Mornor