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 回答