簡體   English   中英

PHP 單元 - 找不到類“PHPUnit_Framework_TestCase”

[英]PHP unit - Class 'PHPUnit_Framework_TestCase' not found

我知道這個問題已經被問了一百次了,但我是 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:\wamp64\www\datechallange\tests\MyDateTest.php on line 3

我嘗試了類似答案中的所有解決方案。 嘗試要求該類的文件,但隨后缺少其他類。 我嘗試修改自動加載文件以包含 phpunit 庫,但要么我做錯了什么,要么不是這樣。 我試圖修改 xml 文件,所以我不需要使用 --bootstrap 但我有同樣的錯誤。

我想關鍵是修改那個 autoload.php 文件,但我不確定如何修改。

謝謝

您似乎有兩個問題中的一個或兩個。

  • 不使用Composer ,這還將提供一個 vendor/autoload.php 文件,該文件將自動拉入通過 composer.json 文件包含的任何文件。
  • 最新版本的 PHPunit (v>6.0) 不再使用長類名。 仍然支持的 v5+ 確實如此。

安裝 PHPunit 5.7 的推薦機制是:

composer require --dev phpunit/phpunit:^5.7

或者,它可以作為單個phpunit.phar下載,可以像任何其他 PHP 腳本一樣運行。

你應該在你的測試文件中嘗試這個。

use PHPUnit\Framework\TestCase;

class MyDateTest extends TestCase
{
}

這是最新的正確書寫方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM