Мне было интересно, есть ли способ, чтобы phpunit для woprdress не удалял никаких данных, которые я создал во время теста?
Обычно вы не хотите этого делать, поскольку это может непреднамеренно повлиять на тесты, которые запускаются после теста, который создает данные.
Если есть некоторые данные, которые необходимо предоставить нескольким вашим тестам в одном wpSetUpBeforeClass()
, вы можете создать его с помощью wpSetUpBeforeClass()
, а затем удалить его снова в wpTearDownAfterClass()
.
Например, тест контроллера категории REST API из ядра :
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(); }