Visual studio 是否有工具突出显示已运行的代码?

Visual studio 是否有工具突出显示已运行的代码?,visual-studio,debugging,trace,xamarin-studio,Visual Studio,Debugging,Trace,Xamarin Studio,我们写代码,我们写测试。当您编写测试时,您考虑的是您正在测试的东西的预期用途,并且您还考虑了该东西的内部实现,编写测试以尝试暴露不良行为 无论何时,只要您更改了这个东西的实现,您都会添加新的代码行,有时很难确保您的测试实际执行了这个东西中的所有代码。您可以做的一件事是设置一个断点,然后一步一步地进行。有时候你不得不这么做。但我正在寻找一种更快、更好的方法来确保所有代码都经过测试 想象一下设置一个断点并单步执行代码,但运行的每一行都会高亮显示,并在运行后保持高亮显示。因此,当程序完成时,您可以轻松

我们写代码,我们写测试。当您编写测试时,您考虑的是您正在测试的东西的预期用途,并且您还考虑了该东西的内部实现,编写测试以尝试暴露不良行为

无论何时,只要您更改了这个东西的实现,您都会添加新的代码行,有时很难确保您的测试实际执行了这个东西中的所有代码。您可以做的一件事是设置一个断点,然后一步一步地进行。有时候你不得不这么做。但我正在寻找一种更快、更好的方法来确保所有代码都经过测试

想象一下设置一个断点并单步执行代码,但运行的每一行都会高亮显示,并在运行后保持高亮显示。因此,当程序完成时,您可以轻松查看代码并识别测试期间从未运行过的行

是否有某种工具、扩展、外接程序或其他东西可以让您运行程序或测试,并确定哪些行已执行,哪些未执行?这有助于提高测试质量


我使用的是Visual Studio和Xamarin Studio,但即使存在针对不同语言和不同IDE的类似工具,拥有这些信息也将有助于在IDE和我个人关心的语言上找到类似的答案。

正如paddy在评论中回答的那样(不确定为什么它不是答案),你要找的术语是保险范围。很明显,它是与单元测试相结合的一个非常关键的工具,因为如果一些代码没有被测试覆盖,并且从未运行过,那么您可能想知道,这样您就可以更完整地进行测试。当然,陷阱在于知道一行代码被触碰并不能自动告诉你这行代码是如何被触碰的-你可以有100%的测试覆盖率,而不覆盖特定LOC的100%用例-也许你有一个内联条件,其中一位永远不会被触碰,举个例子

即使在测试之外,了解覆盖率也很有用。通过对生产中的代码执行覆盖率分析,您可以了解代码库的哪些方面在实际使用中最为关键,以及您需要关注的bug修复、测试和健壮性方面。类似地,如果您的代码库中有一些区域在统计上显著的生产正常运行时间内很少或从未被命中,那么该代码库可能会或应该被删除


dotCover和dotTrace看起来可能会让您走上正确的道路。由于在Python中的使用,我知道我曾经使用Django Nose,它集成了覆盖率测试和报告。独立分析有coverage.py,当然,这些不是生态系统中唯一的工具,只是我使用的工具。

对于.net开发,Jetbrains dotCover(测试覆盖)和dotTrace(性能分析)做我认为您需要的事情。nCrunch也是一个类似的例子dotCover@Paddy这已经很有帮助了,谢谢你的评论。现在我知道我要寻找的是语句级代码覆盖率,这里还有另一个问题:所以我至少有了一个搜索的起点。谢谢。我将尝试OpenCover,如果我不满意,那么继续使用dotCover和NCover。对于C#/.NET。