首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP SimpleTest -使用多个测试用例

PHP SimpleTest -使用多个测试用例
EN

Stack Overflow用户
提问于 2011-10-05 20:48:02
回答 1查看 683关注 0票数 1

我一直在尝试使用SimpleTest开始对我的代码进行单元测试,我有一个独立工作的测试,但我想使用一个包含一系列测试的单一目录,一个TestSuite将运行所有这些测试,我的工作测试是:

代码语言:javascript
复制
<?php
require_once(dirname(__FILE__) . '/../simpletest/autorun.php');

define("ROOT",'/var/web/trunk/');
require_once('/usr/share/log4php/src/main/php/Logger.php');

class TestBayCrazy extends UnitTestCase { 

  function testDatabase () {
    require_once(ROOT.'includes/libs.inc.php');
    $database = new Database();
    $this->assertTrue($database->connected == TRUE);

    $database = new Database('a','b','c','d','e');
    $this->assertTrue($database->connected == FALSE);

    $database = null;
  }

}

我的TestSuite是:

代码语言:javascript
复制
<?php
require_once(dirname(__FILE__) . '/simpletest/autorun.php');

define("ROOT",'/var/web/trunk/');
require_once('/usr/share/log4php/src/main/php/Logger.php');


class AllTests extends TestSuite {
  function AllTests() {
    $this->TestSuite('All Tests');
    $this->addFile('tests/testDatabase.php');
    $this->addFile('tests/testSession.php');
    $this->addFile('tests/testValidate.php');
  }
}

但这在运行时会返回以下内容:

代码语言:javascript
复制
2011/10/05 12:37:47 [error] 3242#0: *309 FastCGI sent in stderr: "PHP Fatal error:
Call to a member function getDumper() on a non-object in 
/var/web/trunk/private/simpletest/test_case.php on line 316 PHP Stack trace: PHP   
1. simpletest_autorun() /var/web/trunk/private/simpletest/autorun.php:0 PHP   
2. run_local_tests() /var/web/trunk/private/simpletest/autorun.php:28 PHP   
3. TestSuite-run() /var/web/trunk/private/simpletest/autorun.php:52 PHP
4. TestSuite->run() /var/web/trunk/private/simpletest/test_case.php:563 PHP
5. TestSuite->run() /var/web/trunk/private/simpletest/test_case.php:563 PHP
6. TestSession->testSession() /var/web/trunk/private/simpletest/test_case.php:559 PHP
7. UnitTestCase->assertIsA() /var/web/trunk/private/tests/testSession.php:10 PHP
8. SimpleTestCase->assert() /var/web/trunk/private/simpletest/unit_tester.php:110"
while reading response header from upstream, client: 0.0.0.0, 
server: example.com, request: "GET /private/unittest.php HTTP/1.1", 
upstream: "fastcgi://127.0.0.1:9001", host: "0.0.0.0

那么,我到底做错了什么呢?我只找到了关于如何做testSuite的例子,没有发现当测试是套件的成员时,它需要如何不同,而不是独立的测试(可能是由于我对单元测试语言的不熟悉)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-06 16:49:20

我们实际上使用的是GroupTest而不是套件

代码语言:javascript
复制
$dbgroup = new GroupTest("running database tests");
$dbgroup->addTestFile('tests/testDatabase.php');
$dbgroup->run(new HtmlReporter());

它做得足够好了..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7661518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档