Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找覆盖相同代码的冗余单元测试_Php_Unit Testing_Phpunit - Fatal编程技术网

Php 查找覆盖相同代码的冗余单元测试

Php 查找覆盖相同代码的冗余单元测试,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,问题: 我有一个庞大的代码库和大量的测试。 在添加一个测试时,我意识到其中一些现有的单元测试覆盖相同的类/函数两次或更多次。 这些测试位于完全不同的位置,因此很难看到它们测试相同的代码 此代码中没有@封面注释。所以我不能用它们来识别“冗余测试”代码 PHPUnit可以处理大量命令行标志,例如使用报告无用测试的无用测试。 如果有一些——report redunant tests,那就太好了,但正如我所看到的,没有这样的选项 问题: 您知道我如何找出哪些代码被测试了两次,哪些单元测试负责这些测试吗

问题: 我有一个庞大的代码库和大量的测试。 在添加一个测试时,我意识到其中一些现有的单元测试覆盖相同的类/函数两次或更多次。 这些测试位于完全不同的位置,因此很难看到它们测试相同的代码

此代码中没有
@封面
注释。所以我不能用它们来识别“冗余测试”代码

PHPUnit可以处理大量命令行标志,例如使用
报告无用测试的无用测试。
如果有一些
——report redunant tests
,那就太好了,但正如我所看到的,没有这样的选项

问题: 您知道我如何找出哪些代码被测试了两次,哪些单元测试负责这些测试吗

背景: 在删除冗余测试时,我想声明以下内容

  • 负责测试的代码应该是完整的,但要尽可能小
  • 如果某些功能发生更改,理想情况下,您只需调整单个测试用例
  • 减少整个单元测试套件的执行时间

  • 检测“冗余”测试确实很困难。即使多个测试通过相同的代码,它们也可以针对不同的场景进行测试,因此所有测试都是相关的。不过,我可以看出,进行多个测试会减慢您的过程

    我的建议是看看这些选择。运行覆盖率报告,例如HTML报告,允许您浏览代码并告诉您每个测试覆盖哪些行/类。这是为了手动使用,如果您希望自动化,查看其他类型的报告并从中提取所需的数据

    然而,一个好的起点是:

    phpunit --coverage-html /tmp/coverage
    

    祝你好运

    多谢各位。当然,他们可能会测试不同的场景,一开始我没有想到:(。但我想至少尝试一下,了解什么测试可能“真的”过时。但是,是的,可能很难正确分类。我会看看不同的覆盖选项。PHP选项看起来最有希望。