PHPUnit没有读取配置文件?

时间:2017-06-02 11:00:50

标签: php phpunit composer-php

我想用composer安装PHPUnit并遵循本教程:https://jtreminio.com/2013/03/unit-testing-tutorial-introduction-to-phpunit/

我添加了

{
    "require-dev": {
        "phpunit/phpunit": "3.7.14"
    },
    "autoload": {
        psr-0": {
           "phpUnitTutorial": ""
        }
 }
}

到文件composer.json。输入./vendor/bin/phpunit向我显示已安装phpunit。

这是我的文件夹结构:

composer.json
composer.phar
phpUnitTutorial/
vendor/

我在phpunit.xml文件夹中创建了一个phpUnitTutorial文件,内容为

<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory>./phpUnitTutorial/Test/</directory>
        </testsuite>
    </testsuites>
</phpunit>

此外,我在phpUnitTutorial/Test/StupidTest.php创建了一个内容为

的文件
<?php

namespace phpUnitTutorial\Test;

class StupidTest extends \PHPUnit_Framework_TestCase
{
    public function testTrueIsTrue(){
      $foo = ture;
      $this->assertTrue($foo);
    }
}

在本教程中,建议执行以下操作:

  

从项目根目录运行PHPUnit:$ vendor / bin / phpunit

使用以下屏幕截图:

enter image description here

如果我在$ vendor/bin/phpunit文件夹中执行phpUnitTutorial,则会收到错误

  

bash:vendor / bin / phpunit:没有这样的文件或目录

这对我有意义,因为文件夹vendor与文件夹phpUnitTutorial处于同一级别。如果我执行$ ../vendor/bin/phpunit我得

enter image description here

它表示没有执行测试,也没有确认我的配置文件已被读取。为什么不执行测试?

1 个答案:

答案 0 :(得分:0)

首先,phpunit.xml文件应位于根文件夹/bin/中,然后命令$ vendor/bin/phpunit将起作用,测试将实际执行。

其次,您需要更改文件StupidTest.php

class StupidTest extends \PHPUnit_Framework_TestCase

class StupidTest extends \PHPUnit\Framework\TestCase

请参阅https://stackoverflow.com/a/42561590/2311074