Passed
Push — master ( 517a56...adf5dc )
by Alexander
02:50
created

CodeceptionCommand::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 0
c 1
b 0
f 0
dl 0
loc 2
ccs 0
cts 1
cp 0
rs 10
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Api\Inspector\Command;
6
7
use Symfony\Component\Process\Process;
8
use Yiisoft\Aliases\Aliases;
9
use Yiisoft\Yii\Debug\Api\Inspector\Test\CodeceptionJSONReporter;
10
11
class CodeceptionCommand
12
{
13
    public function __construct(private Aliases $aliases)
14
    {
15
    }
16
17
    public function run()
18
    {
19
        $projectDirectory = $this->aliases->get('@root');
20
        $debugDirectory = $this->aliases->get('@runtime/debug');
21
22
        $extension = CodeceptionJSONReporter::class;
23
        $params = [
24
            'vendor/bin/codecept',
25
            'run',
26
            '--silent',
27
            '-e',
28
            $extension,
29
            '--override',
30
            "extensions: config: {$extension}: output-path: {$debugDirectory}",
31
            '-vvv',
32
        ];
33
34
        $process = new Process($params);
35
36
        $process
37
            ->setWorkingDirectory($projectDirectory)
38
            ->setTimeout(null)
39
            ->run();
40
41
        return json_decode(
42
            file_get_contents($debugDirectory . DIRECTORY_SEPARATOR . CodeceptionJSONReporter::FILENAME),
43
            true
44
        );
45
    }
46
}
47