PHPUnit:如何创建一个函数,为类中的所有测试调用一次?
我有一个PHPUnit测试用例类(由一些测试函数组成)。我想为类中的所有测试编写一个要调用一次的函数(与标准函数不同,标准函数为类中的每个测试调用一次)。换句话说,我正在寻找一个与JUnit@BeforeClass
注释等效的PHPUnit。oneTimeSetUp()
setUp()
与函数相同的问题。oneTimeTearDown()
在 PHPUnit 中可以这样做吗?
我有一个PHPUnit测试用例类(由一些测试函数组成)。我想为类中的所有测试编写一个要调用一次的函数(与标准函数不同,标准函数为类中的每个测试调用一次)。换句话说,我正在寻找一个与JUnit@BeforeClass
注释等效的PHPUnit。oneTimeSetUp()
setUp()
与函数相同的问题。oneTimeTearDown()
在 PHPUnit 中可以这样做吗?
setUpBeforeClass()
是执行此操作的方法,如果你的所有测试实际上都包含在一个类中。
但是,您的问题意味着您可能正在使用测试类作为多个测试类的基类。在这种情况下,setUpBeforeClass 将在每个之前运行。如果你只想运行它一次,你可以用一个静态变量来保护它:
abstract class TestBase extends TestCase {
protected static $initialized = FALSE;
public function setUp() {
parent::setUp();
if (!self::$initialized) {
// Do something once here for _all_ test subclasses.
self::$initialized = TRUE;
}
}
}
最后一个选项可能是测试侦听器。