无法在phpunit testdirectory中实例化对象
我试图找出phpunit,但当我尝试在tesfile中实例化一个对象时,我一直遇到以下错误:无法在phpunit testdirectory中实例化对象,php,phpunit,composer-php,Php,Phpunit,Composer Php,我试图找出phpunit,但当我尝试在tesfile中实例化一个对象时,我一直遇到以下错误: 致命错误:在c:\xampp\htdocs\stats\Test\BaseballTest.php中找不到Class stats\ballball 我的结构如下: root/barball.php namespace stats; class Baseball { //some code } namespace stats\Test; use stats\Baseball; class
致命错误:在c:\xampp\htdocs\stats\Test\BaseballTest.php中找不到Class stats\ballball
我的结构如下:
root/barball.php
namespace stats;
class Baseball {
//some code
}
namespace stats\Test;
use stats\Baseball;
class BaseballTest extends \PHPUnit_Framework_TestCase {
$baseball = new Baseball(); // doesn't work
}
root/phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Application Test Suite">
<directory>./Test/</directory>
</testsuite>
</testsuites>
</phpunit>
root/composer.json
{
"require": {
},
"require-dev": {
"phpunit/phpunit": "*"
},
"autoload": {
"psr-0": {
"stats": ""
}
}
}
(stats文件夹是根目录。)
当我将BaseballTest.php
移出测试文件夹并将其放入根目录时,它似乎工作正常。我正在利用作曲家来演奏
如果你们能帮我,那就太好了
提前谢谢 使用当前目录布局和composer配置,Basketball
类应位于stats
目录中
您可以将其保留在根目录中,但需要切换到psr-4
autoloader,它允许您跳过命名空间映射中包含的目录:
{
"require": {
},
"require-dev": {
"phpunit/phpunit": "*"
},
"autoload": {
"psr-4": {
"stats\\": ""
}
}
}
命名空间前缀名称后面的斜杠很重要(stats\\\
)
有关自动加载标准的详细信息:
我还建议您使用更标准的目录布局。将类放入src
目录,将测试放入tests
目录。名称空间大部分是大写的。下面是它的样子:
/测试/
工作起来很有魅力!非常感谢。
{
"require": {
},
"require-dev": {
"phpunit/phpunit": "*"
},
"autoload": {
"psr-4": {
"Stats\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Stats\\Tests\\": "tests"
}
}
}