我知道这个问题已被问到一百次,但我是Phpunit的新手,我不知道如何使用以前的答案来帮助我的案例
这是我的文件夹结构
/src/MyDate.php
/src/Autoload.php
/tests/MyDateTest.php
/vendor/phpunit/phpunit
自动加载文件中有此文件
<?php
spl_autoload_register(
function($class) {
static $classes = null;
if ($classes === null) {
$classes = array(
'mydate' => '/MyDate.php'
);
}
$cn = strtolower($class);
if (isset($classes[$cn])) {
require __DIR__ . $classes[$cn];
}
}
);
和mydatetest.php具有此
<?php
class MyDateTest extends PHPUnit_Framework_TestCase
{
|
|
test be here
我运行
phpunit --bootstrap= src/autoload.php tests/MyDateTest.php
我得到此错误
Fatal error: Class 'PHPUnit_Framework_TestCase' not found in C:wamp64wwwdatechallangetestsMyDateTest.php on line 3
我在类似答案中尝试了所有解决方案。尝试在类上要求文件,但丢失了其他类。我尝试修改自动加载文件以包含Phpunit库,但我做错了什么,或者不是这样。我尝试修改XML文件,因此我不需要使用-bootstrap,但我的错误也相同。
我想关键是要修改该autoLoad.php文件,但我不确定如何。
谢谢
您似乎有一个或两个问题中的两个。
- 不使用作曲家,这还将提供一个供应商/autoload.php文件,该文件将自动删除已通过composer.json文件包含的任何文件。
- 最新版本的phpunit(v> 6.0)不再使用长类名称。仍然支持的V5 确实如此。
安装phpunit 5.7的建议机制是:
composer require --dev phpunit/phpunit:^5.7
另外,它可以作为单个phpunit.phar下载,可以像其他任何其他php脚本一样运行。
您应该在测试文件中尝试一下。
use PHPUnitFrameworkTestCase;
class MyDateTest extends TestCase
{
}
这是最新的正确写作方式。