Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mstest 报表生成器中的总行构成是什么?_Mstest_Opencover_Reportgenerator - Fatal编程技术网

Mstest 报表生成器中的总行构成是什么?

Mstest 报表生成器中的总行构成是什么?,mstest,opencover,reportgenerator,Mstest,Opencover,Reportgenerator,我正在使用开源工具ReportGenerator来显示使用OpenCover和mstest生成的XML输出的详细信息。对于一个特定项目,我看到以下指标: 覆盖线路:3611 未覆盖线路:3587 可覆盖线路:7198 总行数:35609 好的,Covered+Uncovered=可覆盖行,这很有意义。但是,总行数明显高于此值,我想知道是什么构成或定义了所有这些额外的代码行,以构成总行数 ReportGenerator的文档充其量是稀疏的,但我猜它包括注释、空白、使用语句(用于导入名称空间)、

我正在使用开源工具
ReportGenerator
来显示使用
OpenCover
mstest
生成的XML输出的详细信息。对于一个特定项目,我看到以下指标:

  • 覆盖线路:3611
  • 未覆盖线路:3587
  • 可覆盖线路:7198
  • 总行数:35609
好的,
Covered+Uncovered=可覆盖行
,这很有意义。但是,
总行数
明显高于此值,我想知道是什么构成或定义了所有这些额外的代码行,以构成
总行数

ReportGenerator
的文档充其量是稀疏的,但我猜它包括注释、空白、使用
语句(用于导入名称空间)、方法声明、类声明等不可测试的内容。但是我不确定,我计划在很多项目中使用这个工具,并且需要能够解释这个数字背后的原因

是否有人知道或能够解释除了可测试行总数之外,
总行数
值由什么组成?

根据它

然后在类/程序集级别聚合这些


但是,如果它们是基于PDB中记录的文件,那么就不会是所有源文件。没有需要在PDB中记录文件的序列点(即,可以放置断点的位置)。

我想你已经知道了,正如我所理解的,它是源文件中的每一行(代码+空格+括号+注释+其他)重要的内容是covered/coverable——在OpenCoverXML中,它处理序列points@ShaunWilde-谢谢。我知道你根据你的简历在OpenCover上投稿。你没有一份ReportGenerator的副本来查看构成
总行数的公式,是吗?根据它是
字符串[]lines=System.IO.File.ReadAllLines(this.Path);this.TotalLines=lines.Length;
然后将它们聚合起来。这很好,只是我不太理解以下内容:“那么就不是所有的源文件都需要在PDB中记录文件,没有序列点(即,可以放置断点的位置)。”你的确切意思是什么?我有点理解它的意思是,如果它是PDB声明的行,它不包括序列点?PDB只包含对至少有一个序列点的文件的引用。只有对
enum
的引用的文件将不会列在PDB中,但仍然是
源代码
。总行数不是很有价值,并且存在问题-最好忽略它,或者对那些被它混淆的人隐藏:)。关于我不知道的差异,非常有用,谢谢!只是为了添加一些信息,我想知道
.ReadAllLines
方法是否读取空行,显然是这样。因此,如果存在
CRLF
,则应读取该行。我同意“总行数”可能没有那么有用,如果它太让人困惑的话,最好加以混淆。谢谢你,作为《我很高兴你发现这个工具如此有用》的作者。
string[] lines = System.IO.File.ReadAllLines(this.Path); 
this.TotalLines = lines.Length;