SO网友:J.D.
通常,您不希望这样做,因为这可能会无意中影响在创建数据的测试之后运行的测试。
如果有一些数据需要在单个测试用例中对多个测试可用,可以使用wpSetUpBeforeClass()
, 然后在中再次移除wpTearDownAfterClass()
.
例如REST API category controller test from core:
class WP_Test_REST_Categories_Controller extends WP_Test_REST_Controller_Testcase {
protected static $administrator;
protected static $subscriber;
public static function wpSetUpBeforeClass( $factory ) {
self::$administrator = $factory->user->create( array(
\'role\' => \'administrator\',
) );
self::$subscriber = $factory->user->create( array(
\'role\' => \'subscriber\',
) );
}
public static function wpTearDownAfterClass() {
self::delete_user( self::$administrator );
self::delete_user( self::$subscriber );
}
// [snip]
}
否则,如果您只想在测试中保留一些数据库更改,可能出于调试目的,您可以使用
commit_transaction()
.
public function test_something() {
do_something();
$this->commit_transaction();
}