当我尝试输入phpunit时,我不断收到此错误

时间:2016-01-28 13:33:10

标签: php phpunit phpstorm

当我尝试使用phpunit时,我在phpStorm的命令行中一直收到此错误。谁可以给我解释一下这个?我是phpunit的新手。

  
    

C:\ XAMPP \ PHP \ phpunit.bat

  
     

警告:缺少PHPUnit_TextUI_TestRunner :: doRun()的参数3,   在第176行和第C:\ xampp \ php \ pear \ PHPUnit \ TextUI \ Command.php中调用   定义于   C:\ XAMPP \ htdocs中\教程\ php_unit_testing \供应商\ PHPUnit的\ PHPUnit的的\ src \文本界面\ TestRunner.php   在第148行

     

Sebastian Bergmann和贡献者的PHPUnit 5.3-dev。

     

致命错误:找不到类'controllers \ core \ web \ Pages'   C:\ XAMPP \ htdocs中\教程\ php_unit_testing \测试\程序\控制器\核心\网络\ PagesTest.php   在第6行

     

处理在22:23:20完成退出代码255。执行时间:186   毫秒。

这是我的xml文件中的代码:

<?xml version='1.0' encoding='UTF-8' ?>

<phpunit bootstrap="./vendor/autoload.php"
     color="true"
     convertErrorsToExceptions="true"
     convertNoticesToExceptions="true"
     convertWarningsToExceptions="true"
     stopOnFailures="false"
     syntaxCheck="false"
    >
<testsuites>
        <testsuite name="Tutorial Unit Tests">
            <directory>./tests/</directory>
        </testsuite>
</testsuites>
</phpunit>

这是来自pages.php的代码:

<?php


 namespace controllers\core\web;

 class Pages{
 public function rendor(){
    return 'Hello World';
 }

 public function return_true(){
    return true;
 }
 public function return_array(){
    return array('Hello', 'world', 'This', 'is', 'an', 'array');
 }
 }
 ?>

这是PagesTest.php的代码:

<?php
class PagesTest extends PHPUnit_Framework_TestCase
{ 
public function testRenderReturnsHelloWorld(){ 

    $pages = new \controllers\core\web\Pages();

    $expected = 'Hello Word'; 

    $this->assertEquals($expected, $pages->rendor());

}
}
?>

2 个答案:

答案 0 :(得分:1)

看起来你并没有在图书馆中加载。通常,您必须创建备用autoload.php文件并将其包含在phpunit bootsrap值中。所以它会是这样的:

<phpunit bootstrap="./autoload.php" ...

  #./auotload.php
  $loader = require_once __DIR__ . '/vendor/autoload.php';
  $loader.add('directory_of_code', 'path/to/that/directory');

  return $loader;

答案 1 :(得分:0)

经过大量研究后,我找到了缺失课程的解决方案。我添加git log以要求我使用命名空间存储类的页面。这对我有用,我希望它适用于遇到此问题的任何人。在我制作的自动加载器文件中,我现在有了这段代码

require_once 'app/controllers/core/web/pages.php';

我从来没有找到关于

的部分
  

警告:缺少PHPUnit_TextUI_TestRunner :: doRun()的参数3,在第176行的C:\ xampp \ php \ pear \ PHPUnit \ TextUI \ Command.php中调用,并在C:\ xampp \ htdocs \ tutorials \ php_unit_testing中定义第148行\ vendor \ phpunit \ phpunit \ src \ TextUI \ TestRunner.php

如果有人想出来,请告诉我。