8

有没有人在 Mighty Moose / ContinuousTests 中遇到过 Here Be Dragons 警告? 在此处输入图像描述

这被放在一个私有方法旁边,可能是因为它是私有的,因此不容易测试——你可能需要魔法盔甲来测试它。无论如何,我也在一个属性的设置器上找到了这个,所以我试图重现它。现在,在我的代码旁边,我再也看不到任何测试运行指标了。

我怎样才能把那些拿回来?出现的条件是什么?提前致谢!

4

3 回答 3

8

您看到此消息的原因是 ContinuousTests 在提供反馈时考虑的不仅仅是测试覆盖率。使用您在那里看到的边距,您可以获得绿色、黄色或红色。绿色表示更改此代码是相当安全的。黄色表示更改那段代码存在一定风险。红色表示如果您更改此代码,您将自行处理。如果更改,则很有可能会损坏某些东西。如果您将鼠标悬停在该图标上,您可以看到有关风险的一些统计信息。如果您右键单击并选择“ContinuousTests->Get Affected Graph”,您将看到这段代码的耦合图。

当显示“here be dragons”消息时,这意味着您正在查看的代码在代码中的很多地方都被引用,并且似乎没有测试与它耦合或引用它的内容。因此,更改该代码不仅会破坏该方法,还会破坏间接使用它的所有内容。

希望能解释一下。

于 2013-07-10T15:17:38.833 回答
2

哇,我可以回答这个问题,但多年后才遇到这个问题 :) 当我编写有问题的软件时,我有足够的资格回答这个问题。

它告诉您的是您的代码无法安全更改。

“当“这里是龙”消息显示时,这意味着您正在查看的代码在代码中的很多地方都被引用,并且似乎没有测试与它耦合或引用它的东西。所以更改该代码你不仅冒着破坏这种方法的风险,而且还有破坏间接使用它的一切的风险。”

非常正确。

它正在看的是

这段代码

这段代码的测试

调用此代码的位置

将此代码调用

测试此代码的调用位置

递归地

它本质上构建了所​​有相关代码的图表(您可以直观地拉出实际图表)以及与该代码相关联的测试,然后对相关代码进行风险分析。作为风险分析的例子,如果我有一个直接测试方法的测试,它被认为比以某种方式覆盖调用链下九层的方法的测试要好得多。

这有意义吗?

于 2021-11-29T07:30:12.467 回答
1

由于没有人可以解释,我将把它归档WTF!?!?!并关闭它。支持请求导致以下结果,这仍然让我有点不知情:

这是一个红色的零,但更糟。基本上,它们出现在似乎是一团乱七八糟的代码中,没有经过任何测试。如果我没记错的话,图表中需要有 30 多个颂歌,测试覆盖率为 0 以及一些 il 循环阁楼复杂性

嗯,它是免费的...

于 2013-03-07T14:03:13.660 回答