![](/img/trans.png)
[英]PHP Fatal error: Class 'PHPUnit_TextUI_ResultPrinter' not found in
[英]PHP Fatal error: Class not found - PHPUnit
我正在嘗試在 PHP 項目中使用PHPUnit 。 這是我的項目結構(文件為斜體字體樣式)
控制器
測試
小販
作曲家.json
我的文件:
作曲家.json
{
"require-dev": {
"phpunit/phpunit":"5.5.4"
}
}
頁面.php
<?php
namespace controllers
class Pages
{
public function render()
{
return 'Hello World';
}
}
頁面Test.php
<?php
class PagesTest extends PHPUnit_Framework_TestCase
{
public function testRenderReturnsHelloWorld()
{
$pages = new \controllers\Pages();
$expected = 'Hello Word';
$this->assertEquals($expected, $pages->render());
}
}
當我打開命令行時,我寫:
C:\xampp\htdocs\PHPUnitTestProject\vendor\bin>phpunit ../../tests/PagesTest.php
我收到此錯誤消息: PHP Fatal error: Class 'controllers\Pages' not found in C:\xampp\htdocs\PHPUnitTestProject\tests\pagesTest.php on line 7
是路徑問題。 我認為這是因為它搜索C:\xampp\htdocs\PHPUnitTestProject\vendor\bin\controllers\Pages()
不存在。
它應該是C:\xampp\htdocs\PHPUnitTestProject\controllers\Pages()
您需要指向測試類,因此在pagesTest.php中添加一個require:
require __DIR__ . "/../controllers/Pages.php";
或者,如果您使用自動加載,則可以在命令行中引導自動加載
phpunit --bootstrap src/autoload.php
或者你可以像這個例子那樣設置一個phpunit.xml配置文件(來自我上面鏈接的PHPUnit頁面):
<phpunit bootstrap="src/autoload.php">
<testsuites>
<testsuite name="money">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
然后使用--configuration選項。
從根文件夾中調用phpunit
:
$ cd C:\xampp\htdocs\PHPUnitTestProject\
$ vendor\bin\phpunit tests/PagesTest.php
在phpunit.xml.dist中添加bootstrap="vendor/autoload.php"
為我解決了這個問題。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"> <!-- in here -->
<php>
<!-- ... -->
</php>
<testsuites>
<!-- ... -->
</testsuites>
</phpunit>
嘗試composer dump-autoload -o
...
我遇到了同樣的錯誤,因為我沒有將 Class 命名為與 phpunit 調用的文件名相同的名稱。
例如我在打電話:
phpunit TEST_myweb_controller.php
其中有一個 class 定義: class web_controller_test extends PHPUnit\Framework\TestCase
這返回錯誤: Class 'TEST_myweb_controller.php' could not be found in '\my\path\to\tests\TEST_myweb_controller.php'
為了解決這個問題,我將 class 定義更改為: class TEST_myweb_controller extends PHPUnit\Framework\TestCase
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.