2011-05-06 80 views
3

當嘗試以錯誤順序截斷表時,基本上由於「完整性衝突」而導致我的測試失敗。嘗試截斷時Zend Db單元測試失敗

每個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的版本1.11.5

是應該的錯誤是固定的(檢查framework zend forum

回答

1

當你想使用PHPUnit來測試你的數據庫,我認爲這將是更好的擴展和使用ZF的類爲此:而不是直接延長PHPUnit_DatabaseTestCase_Abstract也許這是你的問題的一部分

+0

嗨馬爾欽,感謝您的回覆 我的數據庫測試案例延伸PHPUnit_DatabaseTestCase_Abstract,因爲這是延伸Zend_Test_PHPUnit_DatabaseTestCas個人類。即 – 2011-05-06 22:11:31