laravel中,不使用命令行,controller调用phpunit执行单元测试

最近这两天,想要把单元测试的以接口的形式结果返回给阿里云监控系统。所以想要写一个接口,在接口中调用phpunit,执行单元测试。

研究了一下laravel中PHPUnit_TextUI_Command类,发现handleArguments()函数接参数时,是使用的$_SERVER['argv']参数。

于是出现了下面的代码:

<?php

namespace App\Http\Controllers\v1;

use App\Http\Controllers\Controller;

class TestController extends Controller
{
    /**
     * GET test
     */
    public function test()
    {
        $_SERVER['argv'] = ['vendor/bin/phpunit', '-c', base_path() . '/phpunit.xml'];
        $phpunit = \PHPUnit_TextUI_Command::main();
    }
}

猜你喜欢

转载自www.cnblogs.com/xuhuaiqu/p/9342897.html