Проверка модуля Zend Db не удалась при попытке усечь - PullRequest
3 голосов
/ 06 мая 2011

В основном мой тест не удался из-за "нарушения целостности", когда попытка ОБРАБОТАТЬ таблицы в неправильном порядке.

Каждый тестовый пример Db расширяет PHPUnit_DatabaseTestCase_Abstract, который обрезает таблицы перед тестированием. Как только у меня появляется строка в свойстве Property, все тесты не пройдены из-за ошибки: операция COMPOSITE [TRUNCATE] не выполнена по запросу.

Это моя схема базы данных:

-- -----------------------------------------------------
-- Table `project`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `project` (
  `project_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`project_id`) ,
  UNIQUE INDEX `project_id_UNIQUE` (`project_id` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `customer`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `customer` (
  `customer_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `firstname` VARCHAR(45) NOT NULL ,
  `lastname` VARCHAR(45) NOT NULL ,
  `email` VARCHAR(45) NOT NULL ,
  `telephone` VARCHAR(45) NULL DEFAULT NULL ,
  PRIMARY KEY (`customer_id`) ,
  UNIQUE INDEX `customer_id_UNIQUE` (`customer_id` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `property`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `property` (
  `property_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `project_id` INT UNSIGNED NOT NULL ,
  `customer_id` INT UNSIGNED NULL DEFAULT NULL ,
  `name` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`property_id`) ,
  UNIQUE INDEX `property_id_UNIQUE` (`property_id` ASC) ,
  INDEX `fk_property_project` (`project_id` ASC) ,
  INDEX `fk_property_customer1` (`customer_id` ASC) ,
  CONSTRAINT `fk_property_project`
    FOREIGN KEY (`project_id` )
    REFERENCES `project` (`project_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_property_customer1`
    FOREIGN KEY (`customer_id` )
    REFERENCES `customer` (`customer_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

Я тестирую неправильно? Как можно указать усечение в правильном порядке перед тестированием?

Zend Version 1.11.5

Ошибка должна быть исправлена ​​(проверьте framework zend forum

1 Ответ

1 голос
/ 06 мая 2011

Когда вы хотите использовать phpunit для тестирования вашей базы данных, я думаю, что было бы лучше расширить и использовать класс ZF для этого: Zend_Test_PHPUnit_DatabaseTestCase , а не напрямую расширять PHPUnit_DatabaseTestCase_Abstract. Может быть, это часть вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...