美文网首页
免费的测试工具 -- Infection

免费的测试工具 -- Infection

作者: forks1990 | 来源:发表于2021-12-10 14:32 被阅读0次

    Infection测试工具是开源的,这里的免费不是指费用,而是不需要额外付出努力,增加测试效果。

    Infection 通过 mutants 变异因子修改被测代码,运行测试程序,验证测试程序是否能捕捉到错误,捕捉率越高,说明测试程序越有效。

    发现更多错误

    一开始接触这个概念,我认为是为了检查程序员的测试程序的。在我们要求了测试覆盖比例以后,程序员为了达到比例要求,糊弄测试。

    但在试用了以后,发现这个理解太狭隘了。通过 Infection 捕捉到的情况,能发现更多的代码问题,比如边界问题,多余的代码

    忽略掉 Assert

    默认配置下,如果使用了 webmozart/assert 这样的 assert 库,Infection 会报告没有这些 assert 调用,测试程序还能正常运行(隐含指出代码是多余的)。当然是多余的,这就是 assert 的目的,检查不会发生的情况。

    通过修改 Infection 配置文件来忽略:

    {
         "$schema": "https://raw.githubusercontent.com/infection/infection/0.25.4/resources/schema.json",
        ...
         "mutators": {
             "global-ignoreSourceCodeByRegex": [
                 "Assert::.*"
             ],
             "@default": true
         }
    }
    

    –threads={nproc} 参数提高性能

    nproc Linux 命令返回当前系统的 cpu 核心数量

    检查部分代码

    完整运行会很慢,可以用下面的命令行参数组合,只测试部分代码:

    infection.phar --only-covering-test-cases --filter=src/Controller
    

    --filter 控制要分析的源码范围
    --only-covering-test-cases 只运行 --filter 中有关的测试用例

    相关文章

      网友评论

          本文标题:免费的测试工具 -- Infection

          本文链接:https://www.haomeiwen.com/subject/oobtfrtx.html