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选项看起来最有希望。