【发布时间】:2015-06-19 17:52:44
【问题描述】:
下面是我在使用 Intellitest 时无法理解的行为图像。请注意,绿色并没有一直到进度条的末尾,它旁边是当前的动态覆盖度量,即 3/7 块。
我是否应该能够一直继续我的测试运行,直到进度条填满并且块测量编号匹配。我没有看到继续按钮 - 单击运行按钮会导致测试运行重新测试,然后结果保持不变。
【问题讨论】:
标签: .net visual-studio unit-testing mstest pex
下面是我在使用 Intellitest 时无法理解的行为图像。请注意,绿色并没有一直到进度条的末尾,它旁边是当前的动态覆盖度量,即 3/7 块。
我是否应该能够一直继续我的测试运行,直到进度条填满并且块测量编号匹配。我没有看到继续按钮 - 单击运行按钮会导致测试运行重新测试,然后结果保持不变。
【问题讨论】:
标签: .net visual-studio unit-testing mstest pex
Intellitet 使用一种称为动态符号执行的技术,它不断为任何有助于覆盖代码路径的语句生成输入。阅读它here。
如果 Intellitest 无法生成可以帮助它覆盖路径的输入,它会将这种情况标记为警告。
较少的覆盖计数只是意味着 Intellitest 无法推理代码。一些阻碍自动推理的常见情况是
在第二种情况下,intellitest 显示Object Creation 警告。它向您展示了它用于创建对象的工厂,并为您提供了覆盖它并可能注入 Mocks/Fakes/Dummies 等的机会。
警告表明该工具需要您的帮助来推理代码和探索更多测试。在这种情况下,行动方案是:
Apply
如果不满足覆盖率,请查看 intellitest 生成的输入值是否足够,您可以使用其他假设来指导输入生成(请参阅PexAssume、msdn reference。
【讨论】: