最近这两天,想要把单元测试的以接口的形式结果返回给阿里云监控系统。所以想要写一个接口,在接口中调用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(); } }