在Symfony中使用PHPUnit_TextUI_Command子进程PHPUnit测试

时间:2015-08-27 11:22:53

标签: symfony phpunit

我在Symfony2项目中使用PHPUnit,通过composer安装。

我需要覆盖命令行参数处理程序,该处理程序位于来自vendor / phpunit / phpunit / src / TextUI / Command.php的PHPUnit_TextUI_Command类中

看起来很简单:

  • 在子类中扩展此类
  • 覆盖方法handleArguments(array $argv)
  • 在PHPUnit启动器
  • 中使用子类而不是原始类

问题在于最后一点。启动CLI时,我无法使PHPUnit使用另一个类而不是原始类,因为它是由作曲家安装的phpunit二进制文件中的硬编码。

我的两条线索是:

  • 让自动加载器使用我的子类而不是原始类,但由于名称冲突,这看起来不可能
  • 让作曲家安装我自己的另一个PHPUnit二进制文件

我被困在任何一方面,任何帮助都将非常感激!谢谢。

1 个答案:

答案 0 :(得分:1)

查看bin文件夹,您可以在其中找到名为phpunit的文件的符号链接,其中,在最后一行中执行:

PHPUnit_TextUI_Command::main();

以同样的方式,您可以创建一个执行相同操作的脚本,例如,创建一个名为bin\myphpunit的文件,其中包含以下内容:

#!/usr/bin/env php
<?php


require './vendor/autoload.php';

MY_CUSTOMER_PHPUnit_TextUI_Command::main();

并以

启动
bin/myphpunit

希望这个帮助