個々のテストは動くのだけど、テストを一つにまとめてSuiteにすると
FATAL: remaining connection slots are reserved for non-replication superuser connections
とエラーが続出した。
Googleで調べてみると、Rails、Hibernateなどでも似たような症状が報告されていたけど、解決法が見つからない。
「max_connectionを増やす」と良い、
と書いてあったのを見かけたが、増やすと今度は別のエラーで通らない。というかPostgreSQLが起動しなかったので論外。
9.0から9.2系にアップグレードしたけど、効果なし。
phpPgAdminが未対応で、そこでまた修正が出てきたり。
しかたがないのでPHPUnitの書き方を変更して対応。
単に、setupでPdoを生成してたのを、setUpBeforeClass内で行うように変更した。staticメソードなので、ちょっと修正は必要だったが。
class TestUsingPgSql extends \PHPUnit_Framework_TestCase {
function setUp() {
$pdo = new \Pdo( 'some dsn' );
}
}
class TestUsingPgSql extends \PHPUnit_Framework_TestCase
{
static function setUpBeforeClass() {
$pdo = new \Pdo( 'some dsn' );
}
public function setUp() {
}
}
単独でもsuite内で走らせても、問題なし。
しかし、PostgreSQLを使ったテストは3ファイルのみ。
もっとテストが増えてきたら対応できるのだろうか?
0 件のコメント:
コメントを投稿