多次运行PHPUnit测试用例

问题描述 投票:13回答:2

我正在寻找一种如何使用不同的设置多次运行测试用例的方法。

我正在测试数据库访问类(数十种测试方法),并希望以“正常模式”然后以“调试模式”对其进行测试。两种模式必须产生相同的测试结果。

在测试用例设置中是否有可能这样做?还是覆盖run()方法?我当然不想写两次测试:)

谢谢

编辑:知道了!

public function run(PHPUnit_Framework_TestResult $result = NULL)
{
    if ($result === NULL) {
        $result = $this->createResult();
    }

    /**
     * Run the testsuite multiple times with different debug level
     */
    $this->debugLevel = 0;
    print "Setting debug level to: " . $this->debugLevel . PHP_EOL;
    $result->run($this);

    $this->debugLevel = 8;
    print "Setting debug level to: " . $this->debugLevel . PHP_EOL;
    $result->run($this);

    $this->debugLevel = 16;
    print "Setting debug level to: " . $this->debugLevel . PHP_EOL;
    $result->run($this);

    return $result;
}

public function setUp()
{
    parent::setUp();
    $this->myclass->setOptions('debug', $this->debugLevel);
}
php phpunit testcase
2个回答
0
投票

PHPUnit提供测试装饰器。 documentation实际上具有重复的修饰符作为使用修饰符的示例。装饰器将是一种可重用的方式来实现行为的完美方法,而无需依赖于子类PHPUnit_Framework_TestCase


0
投票

您可以在单元测试中创建多种方法。所有这些都将运行,并在每个测试方法运行之后调用setUp方法。

© www.soinside.com 2019 - 2024. All rights reserved.