我想用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