问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Visual Studio 如何获取代码覆盖率数据

发布网友 发布时间:2022-05-12 02:16

我来回答

1个回答

热心网友 时间:2023-11-03 13:50

可以按逐行代码甚或逐个代码块的形式衡量测试的有效性。可以通过配置测试运行以产生代码覆盖率数据来做到这一点。得到的数据显示在“代码覆盖率结果”窗口和源代码文件中。 当对项目(通常为二进制文件)进行了检测,并在测试运行期间将其加载到了内存中时,就会收集代码覆盖率数据。获取代码覆盖率数据过程介绍了如何选择要检测的文件。 注意默认情况下,在运行单元测试时测量代码覆盖率。因此,在运行单元测试时,只有在已关闭代码覆盖率数据收集功能,或者当您希望对其他项目进行检测以收集它们的代码覆盖率数据时,才需要执行获取代码覆盖率数据中的步骤。测试运行完成后,即可查看代码覆盖率数据;有关更多信息,请参见查看代码覆盖率数据。 还可以合并多组代码覆盖率数据,如如何:合并代码覆盖率数据中所述。有关与合并代码覆盖率数据有关的各种情况的信息,请参见使用合并的代码覆盖率数据。如对程序集进行检测和重新签名中所述,必须对经过检测的具有强名称的程序集进行重新签名。指定密钥文件即可启用重新签名。有关更多信息,请参见重新签名程序集。 必须显式地对项目进行检测,只有这样,才能在您运行单元测试之外的其他测试时获取代码覆盖率数据。例如,某个运行手动测试的测试人员可能会启动一个特殊的程序。如果这个程序的二进制文件经过了检测,则将收集代码覆盖率数据。有关更多信息,请参见手动测试概述。 获取代码覆盖率数据获取代码覆盖率数据创建代码测试。这些测试既可以是单元测试,也可以是其他测试类型(它们执行您已为其设置了符号并且已为其选择了要检测的适当二进制文件的代码)。有关如何创建单元测试的信息,请参见 如何:生成单元测试。 打开将用于单元测试的测试运行配置。 有关更多信息,请参见如何:指定测试运行配置。单击“代码覆盖率”。在“选择要检测的项目”下,选择解决方案的 DLL、可执行文件或目录。例如,如果解决方案的名称为 ClassLibrary1,则选择名为 ClassLibrary1.dll、路径为 <Solution Directory>\ClassLibrary1\bin\Debug 的程序集所对应的复选框。注意也可以选择包含测试项目文件的 DLL。这将为测试项目中的方法(而不仅仅是生产代码中的方法)生成代码覆盖率数据。 单击“应用”,再单击“关闭”。运行一个或多个测试。 有关更多信息,请参见如何:运行选定的测试。在运行测试时,会收集代码覆盖率数据。有关查看数据的更多信息,请参见查看代码覆盖率数据。 注意运行VSPerfMon.exe 可以与代码覆盖率数据的集合进行交互。有关更多信息,请参见 Team Edition for Testers 疑难解答中的“代码覆盖率数据和 VSPerfMon.exe”部分。无法为运行在 64 位进程中的应用程序收集代码覆盖率数据。因此,如果您在测试此类应用程序时请求了代码覆盖率数据,则测试引擎会在要检测的程序集的可移植可执行 (PE) 标头中设置“32BIT”标志。测试运行完成后,程序集会恢复到其原始状态。重新签名程序集重新签名程序集打开将用于单元测试的测试运行配置。 有关更多信息,请参见如何:指定测试运行配置。单击“代码覆盖率”。单击“用于重新签名的密钥文件”文本框旁边的省略号 (…)。将显示“选择一个密钥文件”对话框。选择一个密钥文件,然后单击“打开”。在测试运行配置编辑器中,单击“应用”,再单击“关闭”。 如果您要测试多个已签名的程序集,Visual Studio 会尝试重新签名使用您指定的密钥文件签名的所有具有强名称的程序集。有关更多信息,请参见对程序集进行检测和重新签名中的“重新签名程序集”。 查看代码覆盖率数据先决条件:已经运行已生成代码覆盖率数据的测试,如获取代码覆盖率数据中所述。 查看代码覆盖率数据在“测试结果”工具栏上,单击“代码覆盖率结果”。或者,也可以单击“测试”菜单上的“窗口”,然后单击“代码覆盖率结果”。 将打开“代码覆盖率结果”窗口。 在“代码覆盖率结果”窗口中,“层次结构”列显示一个节点,其中包含有在上一次测试运行中获取的所有代码覆盖率数据。如果发生了错误,则在此位置(而非根节点中)显示错误信息。如果显示有节点,请将其展开。注意默认情况下,该测试运行节点采用 <用户名>@<计算机名> <日期> <时间> 的格式命名。可以在“选项”对话框的“常规”页上更改默认命名方案。有关更多信息,请参见如何:指定测试运行配置。依次展开程序集、命名空间和成品代码中某个类的节点。 类中的各行表示类的方法。此表中的列显示了各个方法、类和整个命名空间的覆盖率统计数据。 双击类中的一个方法所对应的行。 将打开源代码文件并转到您选择的方法。在此文件中,可以看到代码突出显示效果。通过滚动,可以看到此文件中其他方法的覆盖率。要更改代码行的突出显示颜色,请参见更改代码覆盖率数据的显示。注意可以单击“测试工具”工具栏上的按钮以切换文件中代码覆盖率的显示,以及导航到文件中前面的或后面的代码行。 (可选)如果选中了测试项目的 DLL 所对应的复选框,则可以打开包含单元测试的源代码文件,以查看执行了哪些测试方法。 更改代码覆盖率数据的显示默认情况下,将使用特定的颜色来指示代码是否被已运行的测试覆盖了。用浅蓝色突出显示的代码行已在测试运行中执行过,而用红褐色突出显示的代码行则还没有执行过。在用米色突出显示的代码行内,有些代码已执行过,有些代码则还没有。 更改代码覆盖率数据的显示单击“工具”,然后单击“选项”。将显示“选项”对话框。 展开“环境”。单击“字体和颜色”。 在“显示其设置”下,选择“文本编辑器”。在“显示项”下,选择要更改其显示颜色的代码覆盖率区域。可用的选项有“覆盖率未涉及的区域”、“覆盖率部分涉及的区域”和“覆盖率涉及的区域”。更改此代码覆盖率区域的设置。可以更改前景色和背景色、字体、字号和文本的粗体设置。(可选)更改其他代码覆盖率区域的设置。 完成上述操作后,单击“确定”。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
陌陌发语音出现转码失败怎么办 女孩2010年5月10号阴历3月27早晨9点55分出生的五行缺什么 钟姓男孩名字2023年5月10日出生的 凤眼果有什么营养?凤眼果的这些营养你都知道吗? 专升本成绩多少合格 山东专升本成绩多少合格 山东2022年专升本成绩什么时候出 2024专升本成绩公布时间及入口 2023年山东专升本各专业录取分数线 什么时候出专升本成绩 山东专升本综合素质测评成绩怎么算 世界上最高的人是? 世界上最高的人是多高? 世界上最高的人身高有几米? 列举响应式web设计需要应用哪些技术 正宗土蜂蜜的价格大概都是多少?有没有经常买蜂蜜的朋友可以分享一下? 海洋的奇妙有着它自己的道理,你对这些生物了解吗 画大鱼明白了什么道理 寻水的鱼 歌词 读了寻找海洋的鱼明白了什么道理? 关于鱼儿寻找海洋的作文 离开海洋的鱼告诉我们什么道理? 鱼儿眼中的海寓言故事说明了什么道理 一条鱼眼中的海这篇短文揭示了一个什么样的道理? 计算机硬件设备有哪些 他们有哪些功能 计算机硬件设备包括 硬件设备一般包括输入设备,处理设备,存储设备,输出设备,操作系统和机房设施? 计算机硬件设备有哪些 电脑的硬件设备有哪些 做微商怎么才能把货卖出去? 微商怎么做?才能把货卖出去,有什么好的平台 “股指向下回调,均价线逐渐递增报到”这句话是什么意思 今天股市会怎样,是什么趋势 2011下半年大盘走势是向上还是向下? 在股市走势盘中如何查看大盘股票走势 今天大盘涨跌如何 今日上证大盘走势恒而达 如何吃更有营养的午餐!? 营养午餐吃什么好 营养午餐搭配 广州中山都有哪些旅游景点 早餐面包哪里买? 超市、早餐店、面包房那个经营起来方便,利润大? 我想开个早餐店,但是我现在不会,去哪里学,我想带着牛奶,面包,什么的。 开一家小型的早餐店和蛋糕店哪个比较赚钱?? 带女朋友去面包店吃早餐选择什么吃好!要注意什么 蛋糕面包店要兼做什么早餐好 有什么早餐面包,可以推荐给大家吗? 想在农村开个面包店,请各位多提点意见 哈尔滨的东北林业大学附近有没有面包店,价格不高,可以买面包和蛋糕来当早点或者小吃啊? 无锡郊区的早餐店有没有卖那种一盘盘的小面包啊一块钱四个的那种 请有在无锡的朋友帮我回答一下好吗