我想用PHPUnit
運行單元測試。但我得到了class not found error
。我一直在嘗試很長一段時間,但仍然無法找到問題所在。類中找不到名稱空間
這是文件夾結構。
我有類Calc
在<base>/stats/cls
文件夾 和測試文件夾<base>/stats/Tests
composer.json
文件
{
"name": "app/test",
"description": "I am learning PHPUnit",
"authors": [
{
"name": "Fawzan",
"email": "[email protected]"
}
],
"minimum-stability": "dev",
"require": {},
"require-dev": {
"phpunit/phpunit" : "*"
}
}
Calc.php
文件
<?php
namespace stats\cls;
class Calc
{
public function add($a, $b)
{
return $a + $b;
}
}
CalcTest.php
文件
<?php
namespace stats\Tests;
use stats\cls\Calc;
class CalcTest extends \PHPUnit_Framework_TestCase
{
public function testAddEquals()
{
$x = 10;
$y = 20;
$baseball = new Calc();
$result = $baseball->add($x, $y);
$expectedResult = $x + $y;
var_dump($result);
$this->assertEquals($expectedResult, $result);
}
}
phpunit.xml
文件
<?xml version="1.0" encoding="utf-8" ?>
<phpunit colors="true" bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Application Test Unit">
<directory>./stats/Tests/</directory>
</testsuite>
</testsuites>
</phpunit>
當我運行phpunit
命令我碰到下面的錯誤。
PHP Fatal error: Class 'stats\cls\Calc' not found in /var/www/stats/Tests/CalcTest.php on line 26
任何人都可以幫助我嗎?
如果自動加載被破壞,請顯示'composer.json'文件。另外,爲什麼它在'BaseballTest'中被破壞 - 一個你沒有顯示的測試類。 – Sven
對不起,我複製了錯誤的錯誤行。我剛剛編輯它。我將分享'compose.json'文件。 – Fawzan
僅供參考我不認爲它是作曲家自動加載的問題。我有一個虛擬的'assertTrue',它工作正常。 – Fawzan