我一直在尝试学习一些关于PHPunit测试的知识,并且一直在学习本教程http://www.sitepoint.com/bulletproofing-database-interactions/我无法让程序找到' seed.xml(在ArticleDAOTest.php中)这个文件是作为PHPunit测试运行的,两个测试都失败说“找不到xml文件:seed.xml”。我把这个文件放在与其他文件相同的目录中,并仔细检查拼写等但没有运气。这是迄今为止的代码
ArticleDAOTest.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)
找到由于
答案 0 :(得分:0)
当然看起来像路径问题。通过输出realpath('seed.xml')尝试调试。如果失败,请修复您的路径。