簡體   English   中英

dbUnit 數據庫測試失敗

[英]Database test faillure with dbUnit

我正在嘗試使用 php 單元執行一些數據庫測試,但我不斷收到以下錯誤: 以下錯誤:

我的 composer.json 看起來像這樣:

{
    "require": {
    "phpunit/phpunit": "4.8",
    "phpunit/dbunit": "^2.0"
}

這是我試圖在其上執行測試的頁面:

<?php 
require_once 'autoload.php';

class testDatabase extends \PHPUnit_Extensions_Database_TestCase {


public function getConnection() {
    $db = new PDO(
        "mysql:host=localhost;dbname=mrf", 
        "", "");
    return $this->createDefaultDBConnection($db, "bulletproof");
}

}
?>

我使用 sql 自動加載器來加載主要的 php 類,如下所示:

<?php 
spl_autoload_register(function($class) {
    require_once '../classes/' . $class . '.php';
});
?>

在我看來,奇怪的是常規 phpunit 測試確實運行,但 dbUnit 測試卻沒有。 我嘗試了從 packagist 下載的 composer、phpUnit 和 dbUnit 的幾次升級,但沒有成功。

如果你能幫助我,那就太好了,提前致謝。

當您運行composer install ,composer 生成文件PROJECT_ROOT/vendor/autoload.php 該文件包含自動加載項目依賴項所需的所有內容,因此根據我在屏幕截圖中看到的內容,您需要require_once它以及您自己的。


附帶說明:phpunit 有一個選項--bootstrap=filename ,它在所有測試運行之前執行。 你可以跑

phpunit --bootstrap=PROJECT_ROOT/vendor/autoload.php databaseTest.php

之后你可以創建類似 phpunit_bootstrap.php 的東西,把你的require_once 'autoload.php'; 這里和作曲家 vendor/autoload.php 這樣你就可以運行測試

phpunit --bootstrap=path/to/your/phpunit_bootstrap.php AnythingYouWantToTest.php

無需插入require_once 'autoload.php'; 在每個測試文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM