PHPUnit:从 setUp() 获取测试类和方法的名称?
PHPUnit 在运行特定测试之前运行测试类的方法。setUp()
我为测试类中的每个测试加载特定于测试的夹具,并且不希望必须显式执行此操作。理想情况下,我想在方法中自动处理这个问题。setUp()
如果该方法提供了测试类名和测试方法名,则可以执行此操作。setUp()
即将运行的测试类和方法的名称是否可供我在方法中使用?setUp()
PHPUnit 在运行特定测试之前运行测试类的方法。setUp()
我为测试类中的每个测试加载特定于测试的夹具,并且不希望必须显式执行此操作。理想情况下,我想在方法中自动处理这个问题。setUp()
如果该方法提供了测试类名和测试方法名,则可以执行此操作。setUp()
即将运行的测试类和方法的名称是否可供我在方法中使用?setUp()
实现此目的的最简单方法应该是调用 。$this->getName()
setUp()
<?php
class MyTest extends PHPUnit_Framework_TestCase
{
public function setUp() {
var_dump($this->getName());
}
public function testMethod()
{
$this->assertEquals(4,2+2,'OK1');
}
}
和运行:
phpunit MyTest.php
生产:
PHPUnit 3.7.1 by Sebastian Bergmann.
.string(10) "testMethod"
Time: 0 seconds, Memory: 5.00Mb
OK (1 test, 1 assertion)
总的来说,我建议不要这样做,但肯定在某些情况下,这可能是一个很好的做事方式。
其他选项是具有多个测试类,并将使用相同夹具的所有测试放在一个类中。
另一种方法是使用私有的 setUp 帮助程序,并从测试用例中调用相应的帮助程序。
或者,如果您不想像edorian的答案那样显示该部分,则可以这样做:string(10)
protected function setUp()
{
echo $this->getName() . "\n";
}