【问题标题】:Continue Pex run in Visual Studio 2015 RC intellitest till dynamic coverage block numbers match继续 Pex 在 Visual Studio 2015 RC 智能测试中运行,直到动态覆盖块编号匹配
【发布时间】:2015-06-19 17:52:44
【问题描述】:

下面是我在使用 Intellitest 时无法理解的行为图像。请注意,绿色并没有一直到进度条的末尾,它旁边是当前的动态覆盖度量,即 3/7 块。

我是否应该能够一直继续我的测试运行,直到进度条填满并且块测量编号匹配。我没有看到继续按钮 - 单击运行按钮会导致测试运行重新测试,然后结果保持不变。

【问题讨论】:

    标签: .net visual-studio unit-testing mstest pex


    【解决方案1】:

    Intellitet 使用一种称为动态符号执行的技术,它不断为任何有助于覆盖代码路径的语句生成输入。阅读它here

    如果 Intellitest 无法生成可以帮助它覆盖路径的输入,它会将这种情况标记为警告。

    较少的覆盖计数只是意味着 Intellitest 无法推理代码。一些阻碍自动推理的常见情况是

    • 无法检测的方法,根本无法了解要获取的输入值或方法主体中有多少未覆盖的块
    • 不容易创建的复杂对象。 Intellitets 尝试通过调用(参数化)构造函数来模拟对象构造,但有时它会失败,因为创建涉及初始化逻辑,或调用未检测的方法

    在第二种情况下,intellitest 显示Object Creation 警告。它向您展示了它用于创建对象的工厂,并为您提供了覆盖它并可能注入 Mocks/Fakes/Dummies 等的机会。

    警告表明该工具需要您的帮助来推理代码和探索更多测试。在这种情况下,行动方案是:

    1. 检查对象创建警告
    2. 如果您认为该工厂合适,请点击工具栏上的Apply
    3. 根据需要修改工厂
    4. 再次运行智能测试

    如果不满足覆盖率,请查看 intellitest 生成的输入值是否足够,您可以使用其他假设来指导输入生成(请参阅PexAssumemsdn reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 2016-03-03
      • 1970-01-01
      相关资源
      最近更新 更多