php - Error when using phpunit/dbunit with SQL Server -


i using phpunit/dbunit test sql server database, shows following error

1) tests\integration\blocksdaointegrationtest::test_insert_block phpunit_extensions_database_operation_exception: composite[truncate] operation failed on query: truncate table digital_documents_images using args: array ( ) [sqlstate[42000]: [microsoft][sql server native client 11.0][sql server]cannot truncate table 'digital_documents_images' because being referenced foreign key constraint.]

could please me solve it? thank you
(sorry english i'm brazilian)

i have solved problem extending class phpunit_extensions_database_operation_truncate , returning it:

the operation class:

    class sqlservertruncateoperation extends \phpunit_extensions_database_operation_truncate {      private $reseed = "declare @sql nvarchar(max);          set @sql = n'set nocount on;';          ;with s(t)          (            select               quotename(object_schema_name(referenced_object_id))               + '.' + quotename(object_name(referenced_object_id))           sys.foreign_keys k           exists            (             select 1 sys.identity_columns              [object_id] = k.referenced_object_id           )           group referenced_object_id         )         select @sql = @sql + n'dbcc checkident(''' + t + ''', reseed, 0) no_infomsgs;'         s;         exec sp_executesql @sql;";      public function execute(\phpunit_extensions_database_db_idatabaseconnection $connection, \phpunit_extensions_database_dataset_idataset $dataset) {         $connection->getconnection()->query('exec sp_msforeachtable "alter table ? nocheck constraint all"');         $connection->getconnection()->query('exec sp_msforeachtable "delete ?"');         $connection->getconnection()->query($this->reseed);         $connection->getconnection()->query('exec sp_msforeachtable "alter table ? check check constraint all"');      } } 

my test base class:

 abstract class dbunitabstracttestcase extends \phpunit_extensions_database_testcase{      static private $pdo = null;      private $conn = null;      protected function getconnection() {         if ($this->conn === null) {             if (self::$pdo == null) {                 self::$pdo = new \pdo("sqlsrv:server=server;database=db", "user", 'password');             }             $this->conn = $this->createdefaultdbconnection(self::$pdo, 'database');         }          return $this->conn;     }      public function getsetupoperation() {         $cascadetruncates = true;          return new \phpunit_extensions_database_operation_composite(array(             new sqlservertruncateoperation($cascadetruncates),             \phpunit_extensions_database_operation_factory::insert()         ));     } } 

Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -