首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次运行PHPUnit测试用例

多次运行PHPUnit测试用例
EN

Stack Overflow用户
提问于 2013-08-15 21:15:51
回答 3查看 5.7K关注 0票数 24

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

我正在测试一个数据库访问类(几十个测试方法),我想在“正常模式”下测试它,然后在“调试模式”下测试它。两种模式必须产生相同的测试结果。

在测试用例设置中有这样做的可能性吗?或者覆盖run()方法?当然,我不想编写两次测试:)

谢谢

编辑:明白了!

代码语言:javascript
复制
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);
}
EN

回答 3

Stack Overflow用户

发布于 2020-04-07 18:11:55

我认为斯文的答案是正确的。编写您想要设置的内容,并提供所需的测试用例参数,如下所示:

代码语言:javascript
复制
/**
 * @dataProvider forMyTest
 */
public function testWithDifferentDbType($type, $param1, $param ....)
{
    $this->assertExists(....);
}

public function forMyTest() {
    return [
        [
            true
            [$prodDb, $param1, $param, .....],
        ],
        [   
            false,
            [$debugDb, $param1 $param, ....,

        ],
    ];
}
票数 2
EN

Stack Overflow用户

发布于 2014-07-06 05:50:33

PHPUnit提供了测试装饰器。documentation实际上有重复的装饰器作为如何处理装饰器的示例。装饰器将是以可重用的方式实现行为的完美方式,而不依赖于PHPUnit_Framework_TestCase的子类化。

票数 0
EN

Stack Overflow用户

发布于 2019-12-14 09:25:37

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

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

https://stackoverflow.com/questions/18253452

复制
相关文章

相似问题

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