如何找到数据提供者提供数据的测试?

时间:2016-10-04 11:56:11

标签: php reflection phpunit

在使用相同@dataProvider的两个或多个测试的PHPUnit测试用例中,我希望提供者找出它提供数据的测试。我用debug_backtrace()完成了这个,但这感觉不对。 PHPUnit是否提供了另一种更标准的方法来实现这一目标?如果是,怎么样?

<?php

class MyTest extends \PHPUnit_Framework_TestCase {

    /** @dataProvider dataProvider */
    public function testA () {}

    /** @dataProvider dataProvider */
    public function testB () {}

    public function dataProvider () {

        $trace = debug_backtrace(false, 3);
        $caller = $trace[2]['args'][2];

        // $caller === 'testA' or $caller === 'testB'
    }
}

1 个答案:

答案 0 :(得分:2)

创建调用基础数据提供程序的各个数据提供程序。通过这种方式,您可以知道调用者是什么,并且仍然可以拥有单个入口点。

imports excel = microsoft.office.interop.excel

dim excelapp as excel.application
dim WB as excel.workbook

sub button1()

    excelapp = new excel.application

    WB = excelapp.workbooks.add
    excelapp.visible=true    
end sub