找不到PHPUnit DbUnit表

找不到PHPUnit DbUnit表,php,testing,phpunit,dbunit,database-testing,Php,Testing,Phpunit,Dbunit,Database Testing,在运行单元测试时,我遇到了一个非常奇怪的错误: PDOException:SQLSTATE[42S02]:未找到基表或视图:1146表“test.result”不存在 /var/www/html/project1/rami/tests/Data/Models/DataImportTest.php:60 有问题的测试代码(简化以尝试隔离问题): 更奇怪的是,在其他使用asserttableequal的测试中,断言可以正常运行并通过,只有这个测试失败了。PHPUnit在创建预期的表(数据库中不存在)

在运行单元测试时,我遇到了一个非常奇怪的错误:

PDOException:SQLSTATE[42S02]:未找到基表或视图:1146表“test.result”不存在

/var/www/html/project1/rami/tests/Data/Models/DataImportTest.php:60

有问题的测试代码(简化以尝试隔离问题):

更奇怪的是,在其他使用
asserttableequal
的测试中,断言可以正常运行并通过,只有这个测试失败了。PHPUnit在创建预期的表(数据库中不存在)时,似乎在自省数据库中名为“result”的表,但在其他任何测试中它都不会这样做

我曾经尝试过删除数据库并重新创建它,重新加载开发/测试环境(一个“漫游框”),甚至用新安装的MariaDB重新设置“漫游框”,但都没有成功

谷歌搜索错误只显示与Laravel相关的问题,在其他PHP框架中也有少量类似的问题,但与测试无关

据我所知,该实现工作正常,在测试数据库上手动运行查询不会导致任何错误


有什么想法吗?

你找到解决方案了吗?@DazBaldwin我认为错误是因为测试数据集没有用请求id 1正确填充表,导致在测试中运行时查询中没有选择行。但我不是100%确定。谢谢你的回复。我想我是在挣扎,因为版本差异很大,文档有点到处都是。我设法让它工作了,正如你所说,我认为问题可能是.yml文件。
/**
 * @covers \Project1\Rami\Data\Models\DataImport::insertData
 */
public function testInsertData(): void {
    $this->object->insertData(1);

    $sql = 'SELECT request_id
              FROM requests
             WHERE request_id = 1;';

    $queryTable = $this->getConnection()->createQueryTable('result', $sql);
    $expectedTable = $this->createArrayDataSet([
        'result' => [
            [
                'request_id' => '1'
            ]
        ]
    ])->getTable('result');

    static::assertTablesEqual($expectedTable, $queryTable);
}