我一直在尝试学习一些关于 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找到)
谢谢