0

私はPHPunitテストについて少し学ぼうとしており、このチュートリアルに従っていますhttp://www.sitepoint.com/bulletproofing-database-interactions/プログラムに「seed.xml」を見つけることができませんでした( ArticleDAOTest.php) このファイルを PHPunit テストとして実行すると、両方のテストが失敗し、「xml ファイルが見つかりませんでした: seed.xml. このファイルは他のファイルと同じディレクトリにあり、スペルなどを再確認しましたが、うまくいきません。これがこれまでのコードです

記事DAOTest.php

<?php
require_once 'PHPUnit/Extensions/Database/TestCase.php';
require_once "PHPUnit/Autoload.php";
require_once "IArticleDAO.php";
require_once "ArticleDAO.php";

class ArticleDAOTest extends PHPUnit_Extensions_Database_TestCase
{
public function getConnection() {
    $db = new PDO(
            "mysql:host=localhost;dbname=unittesteg",
            "root", "password");
    return $this->createDefaultDBConnection($db, "unittesteg");
}

public function getDataSet() {
    return $this->createXMLDataSet('seed.xml');
}

public function testGetArticlesNonHome() {
    $articleDAO = new ArticleDAO();
    $articles = $articleDAO->getArticles(1, false);
    $this->assertEquals(
            array(
                    array("id" => 1, "title" => "Android vs iOS"),
                    array("id" => 2, "title" => "Android vs Wp7"),
                    array("id" => 3, "title" => "iOS 5")),
            $articles);
}

public function testGetArticlesNonHomeNoArticles() {
    $articleDAO = new ArticleDAO();
    $articles = $articleDAO->getArticles(2, false);
    $this->assertEquals(array(), $articles);
}
}

そしてseed.xmlは

<?xml version="1.0" ?>
<dataset>
 <table name="sections">
  <column>id</column>
  <column>name</column>
  <row>
   <value>1</value>
   <value>Gadgets</value>
  </row>
  <row>
   <value>2</value>
   <value>Programming</value>
  </row>

私が言ったように、それらは両方とも同じフォルダーにありますが、それでも見つかりません。

どんな助けでも大歓迎です

(完全なソース コードはhttps://github.com/phpmasterdotcom/BulletproofingDatabaseInteractionsにあります)

ありがとう

4

1 に答える 1

0

確かにパスの問題のように見えます。realpath('seed.xml') を出力してデバッグしてみてください。それが失敗した場合は、パスを修正してください。

于 2013-10-22T14:52:53.230 に答える