PHPUnit没有做任何事情,没有输出

时间:2013-02-22 03:12:18

标签: php unit-testing phpunit

我已经编写了一些测试用例,并希望使用PHPUnit进行测试。但是,它不起作用。 如果我运行phpunit CategoryTest,则输出:

PHPUnit 3.7.14 by Sebastian Bergmann.

如果我phpunit --log-json error.log CategoryTest,则会显示error.log文件:

{"event":"suiteStart","suite":"CategoryTest","tests":5}  
{"event":"testStart","suite":"CategoryTest","test":"CategoryTest::test__construct"}

因此,它发现文件中有5个测试,开始执行第一个测试并且无缘无故停止。是否有任何日志,我可以找到它不会继续执行的原因? 另外,如果我在其他文件上运行test,比如说phpunit --log-json error.log UserTest,那么shell不会显示任何输出,也不会显示error.log文件。

我尝试重新安装它,因为它是在其他类似问题中提出的,但它没有做任何事情。

我有什么想法可以解决它?

require_once '../Category.class.php';
require_once '../../db_connect.php';
require_once 'PHPUnit/Framework/TestCase.php';

class CategoryTest extends PHPUnit_Framework_TestCase {

private $Category;

protected function setUp() {

    parent::setUp ();
    $this->Category = new Category(0, $mdb2);

}

protected function tearDown() {
    $this->Category = null;
    parent::tearDown ();
}

public function __construct() {

}

public function test__construct() {

    $this->markTestIncomplete ( "__construct test not implemented" );

    $cat = $this->Category->__construct(0, $mdb2);

    $this->assertInstanceOf('Category', $cat);
}

public function testReturnID() {

    $this->markTestIncomplete ( "returnID test not implemented" );

    $id = $this->Category->returnID();

    $this->assertEquals(0, $id);

}
  ...
}

变量$mdb2来自db_connect.php文件。

我明白了。问题是我在课堂外面加了一个变量。

1 个答案:

答案 0 :(得分:1)

您不应该覆盖TestCase中的__construct()方法。构造函数为测试设置了模拟生成器和其他一些强制性的东西,因此如果覆盖构造函数,会出现很多奇怪的行为和不必要的副作用。 setUp()方法是初始化测试时应该使用的特殊方法。