gpt4 book ai didi

php - phpunit 中的 dbunit 没有截断表

转载 作者:IT王子 更新时间:2023-10-29 00:15:09 27 4
gpt4 key购买 nike

我目前正在为我的项目使用 PHPUnit 和 DBUnit。我在 DBUnit 中遇到问题,因为 DBUnit PHPUnit_Extensions_Database_TestCase­Src类似乎没有截断测试数据库上的现有数据。所以这使得我的插入测试只工作了一次就失败了。

我正在使用 mysql,这是我的代码:

abstract class Generic_Tests_DatabaseTestCase extends PHPUnit_Extensions_Database_TestCase
{
// only instantiate pdo once for test clean-up/fixture load
static private $pdo = null;

// only instantiate PHPUnit_Extensions_Database_DB_IDatabaseConnection once per test
private $conn = null;

final public function getConnection()
{
if ($this->conn === null) {
if (self::$pdo == null) {
self::$pdo = new PDO( "mysql:dbname=db;host=localhost", "root", "pass" );
}
$this->conn = $this->createDefaultDBConnection(self::$pdo, "db");
}

return $this->conn;
}
}

class DbopTest extends Generic_Tests_DatabaseTestCase
{
private $db;

protected function setup(){
$this->db = null;
}

public function getDataSet(){
return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/../rows.xml');
}
...
}

那么我该如何解决这个问题呢?我在这里做错了什么?

最佳答案

如果您覆盖setUp 方法,PHPUnit 将不会自动调用您的getDataSet 方法。您还需要注意调用 parent::setUp 方法,否则 PHPUnit 不知道该做什么 ;)。

关于php - phpunit 中的 dbunit 没有截断表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com