PHPUnit测试用例没有执行

时间:2015-04-10 09:29:47

标签: php phpunit

尝试成为一名优秀的后端开发人员,跳上测试驱动开发的潮流,我刚刚通过composer安装了PHPUnit。然后我运行命令vendor / bin / phpunit,可以看到PHPUnit已正确安装。

以下是我的文件结构:

-fileserver
  src
  tests/
  vendor
  composer.json
  composer.lock
  index.php
  phpunit.xml

在phpunit.xml文件中我有以下内容:

<?xml version="1.0" encoding="UTF-8"?>
  <phpunit colors="true">
    <testsuites>
      <testsuite name="File Server Test Suite">
        <directory>./fileserver/tests/</directory>
      </testsuite>
    </testsuites>
  </phpunit>

如果我运行vendor / bin / phpunit,我可以看到我的配置文件已经加载但没有运行测试。

我基本上在tests文件夹和扩展的PHPUnit_Framework_TestCase中创建了一个简单的测试文件。我的所有测试都使用psr-4命名空间PhpUnitTest。

composer.json

//Other part excluded
"autoload": {
  "psr-4": { 
    "FileServer\\": "src" ,
    "PhpUnitTest\\": "tests"
  }

示例测试类

namespace PhpUnitTest;

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

然而,下面是我得到的输出:

PS C:\wamp\www\fileserver> vendor/bin/phpunit
PHPUnit 3.7.14 by Sebastian Bergmann.

Configuration read from C:\wamp\www\fileserver\phpunit.xml



  Time: 3.53 seconds, Memory: 1.25Mb

←[30;43m←[2KNo tests executed!
←[0m←[2KPS C:\wamp\www\fileserver>

我错过了什么?为什么我的测试用例没有被执行?提前感谢你。

1 个答案:

答案 0 :(得分:1)

您没有将作曲家生成的自动加载器添加到您的phpunit.xml文件中。在bootstrap标记上设置phpunit属性。您的测试套件的路径也是错误的。路径应该相对于phpunit.xml文件,因此您应该丢失路径中的fileserver/

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./vendor/autoload.php" colors="true">
    <testsuites>
        <testsuite name="File Server Test Suite">
            <directory>tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>

应该这样做