@@ -23,21 +23,20 @@ class DatabaseTestListener implements \PHPUnit_Framework_TestListener
23
23
{
24
24
protected static $ currentSuite ;
25
25
private $ processBuilder ;
26
+ private $ prefix ;
26
27
27
28
public function __construct ($ processBuilder = null )
28
29
{
29
30
if (null === $ processBuilder ) {
30
31
$ this ->processBuilder = new ProcessBuilder ();
31
32
$ phpExecutableFinder = new PhpExecutableFinder ();
32
33
$ phpExecutable = $ phpExecutableFinder ->find ();
33
- if (false !== $ phpExecutable ) {
34
- $ this ->processBuilder ->setPrefix (
35
- ProcessUtils::escapeArgument ($ phpExecutable ).' ' .
36
- ProcessUtils::escapeArgument (__DIR__ .'/../../../../../../bin/console ' )
37
- );
38
- } else {
34
+ if (false === $ phpExecutable ) {
39
35
throw new \RuntimeException ('No PHP executable found on the current system. ' );
40
36
}
37
+
38
+ // Symfony 2.3 does not support array prefix, so we have to implement it ourselves
39
+ $ this ->prefix = array ($ phpExecutable , __DIR__ .'/../../../../../../bin/console ' );
41
40
} else {
42
41
$ this ->processBuilder = $ processBuilder ;
43
42
}
@@ -112,7 +111,7 @@ private function setUpPhpcrDatabase($suite)
112
111
echo PHP_EOL .PHP_EOL ;
113
112
114
113
$ process = $ this ->processBuilder
115
- ->setArguments (array ('doctrine:phpcr:init:dbal ' , '--drop ' ))
114
+ ->setArguments (array_merge ( $ this -> prefix , array ('doctrine:phpcr:init:dbal ' , '--drop ' ) ))
116
115
->getProcess ();
117
116
$ process ->run ();
118
117
@@ -123,7 +122,7 @@ private function setUpPhpcrDatabase($suite)
123
122
$ suite ->markTestSuiteSkipped ('[PHPCR] Error when initializing dbal: ' .$ output );
124
123
} else {
125
124
$ process = $ this ->processBuilder
126
- ->setArguments (array ('doctrine:phpcr:repository:init ' ))
125
+ ->setArguments (array_merge ( $ this -> prefix , array ('doctrine:phpcr:repository:init ' ) ))
127
126
->getProcess ();
128
127
$ process ->run ();
129
128
@@ -151,7 +150,7 @@ private function setUpOrmDatabase($suite)
151
150
echo PHP_EOL .PHP_EOL ;
152
151
153
152
$ process = $ this ->processBuilder
154
- ->setArguments (array ('doctrine:schema:drop ' , '--env=orm ' , '--force ' ))
153
+ ->setArguments (array_merge ( $ this -> prefix , array ('doctrine:schema:drop ' , '--env=orm ' , '--force ' ) ))
155
154
->getProcess ();
156
155
$ process ->run ();
157
156
@@ -167,7 +166,7 @@ private function setUpOrmDatabase($suite)
167
166
}
168
167
169
168
$ process = $ this ->processBuilder
170
- ->setArguments (array ('doctrine:database:create ' , '--env=orm ' ))
169
+ ->setArguments (array_merge ( $ this -> prefix , array ('doctrine:database:create ' , '--env=orm ' ) ))
171
170
->getProcess ();
172
171
$ process ->run ();
173
172
@@ -178,7 +177,7 @@ private function setUpOrmDatabase($suite)
178
177
$ suite ->markTestSuiteSkipped ('[ORM] Error when creating database: ' .$ output );
179
178
} else {
180
179
$ process = $ this ->processBuilder
181
- ->setArguments (array ('doctrine:schema:create ' , '--env=orm ' ))
180
+ ->setArguments (array_merge ( $ this -> prefix , array ('doctrine:schema:create ' , '--env=orm ' ) ))
182
181
->getProcess ();
183
182
$ process ->run ();
184
183
@@ -208,7 +207,7 @@ public function endTestSuite(\PHPUnit_Framework_TestSuite $suite)
208
207
}
209
208
210
209
$ process = $ this ->processBuilder
211
- ->setArguments (array ('doctrine:database:drop ' , '--force ' ))
210
+ ->setArguments (array_merge ( $ this -> prefix , array ('doctrine:database:drop ' , '--force ' ) ))
212
211
->getProcess ();
213
212
$ process ->run ();
214
213
0 commit comments