【发布时间】:2016-03-20 16:12:53
【问题描述】:
我正在尝试使用PHPUnit 运行单元测试。但我得到了class not found error。我已经尝试了很长时间,但我仍然找不到问题所在。
这是文件夹结构。
我在 <base>/stats/cls 文件夹中有 Calc 类
和<base>/stats/Tests文件夹中的测试文件
composer.json文件
{
"name": "app/test",
"description": "I am learning PHPUnit",
"authors": [
{
"name": "Fawzan",
"email": "xxxxxx@xxx.xxx"
}
],
"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中被破坏了 - 一个你没有显示的测试类。 -
对不起,我复制了错误的错误行。我刚刚编辑了它。我将分享
compose.json文件。 -
仅供参考,我认为这不是作曲家自动加载的问题。我有一个假人
assertTrue工作正常。
标签: php namespaces phpunit