Я использую PHPUnit 5 с DBUnit 2.0.3 и Phinx 0.8.2. Я пытаюсь настроить тест с SQLite в базе данных памяти:
abstract class ApiTest extends PHPUnit_Extensions_Database_TestCase
{
protected $pdo;
public function getConnection()
{
return $this->createDefaultDBConnection($this->pdo, ':memory:');
}
public function getDataSet()
{
return $this->createFlatXMLDataSet(dirname(__FILE__) . '/DataSets/TestDataSet.xml');
}
protected function setUp()
{
$this->pdo = new PDO('sqlite::memory:', null, null, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
$configArray = require('phinx.php');
$configArray['environments']['test'] = [
'adapter' => 'sqlite',
'connection' => $this->pdo
];
$config = new Config($configArray);
$manager = new Manager($config, new StringInput(' '), new NullOutput());
$manager->migrate('test');
$this->getDataSet();
}
}
Это мой тест:
class DatabaseTest extends ApiTest
{
public function testCodes()
{
$count = $this->getConnection()->getRowCount('user');
dd($count);
}
}
Это мои данные:
<?xml version="1.0" ?>
<dataset>
<user id="1" username="johnsmith" password="pwdpwd" token="tokenhere" token_validity="1" deleted="0" />
</dataset>
Когда я запускаю тест, я получаю количество строк 0
, Я ожидаю количество строк 1
, Я знаю, что миграция работает, потому что, если я ввожу имя фиктивной таблицы, она выдаст ошибку «строка не найдена».
Задача ещё не решена.
Других решений пока нет …