有没有办法从Delphi代码覆盖率度量中省略一些行?
我正在用单元测试来覆盖我的项目,有一些显然永远无法达到的目标。例如:有没有办法从Delphi代码覆盖率度量中省略一些行?,delphi,code-coverage,delphi-xe3,Delphi,Code Coverage,Delphi Xe3,我正在用单元测试来覆盖我的项目,有一些显然永远无法达到的目标。例如: constructor TSomeClass.Create; begin inherited Create; raise ENotSupportedException.Create('This class does not support parameterless Create') at ReturnAddress; end;//<- this line generates code but is un
constructor TSomeClass.Create;
begin
inherited Create;
raise ENotSupportedException.Create('This class does not support parameterless Create') at ReturnAddress;
end;//<- this line generates code but is unreachable
构造函数TSomeClass.Create;
开始
继承创造;
在ReturnAddress处引发EnotSupportDexception.Create('此类不支持无参数Create');
结束//这里只是一个指向delphi代码覆盖率答案的链接:这是一个愚蠢的想法-假设“delphi代码覆盖率”工具使用蓝色断点行,那么您的错误(…)
方法可能是非公共的,并用内联
指令标记。这将有效地删除蓝色断点。或者您可以重新设计代码,以便Error
方法返回异常,而不是直接引发异常。但并不总是你想要的。在这种情况下,我会抛出一个System.SysUtils.enoconstructionexception
,它似乎是为类似这样的东西而设计的。没有回答这个问题,但还是想提一下。看。有一些解决方案会使TSomeClass.Create
过时。这里只需一个指向delphi代码覆盖率答案的链接即可:这是一个愚蠢的想法-假设“delphi代码覆盖率”工具使用蓝色断点行,那么您的错误(…)
方法可能是非公开的,并用inline
指令标记。这将有效地删除蓝色断点。或者您可以重新设计代码,以便Error
方法返回异常,而不是直接引发异常。但并不总是你想要的。在这种情况下,我会抛出一个System.SysUtils.enoconstructionexception
,它似乎是为类似这样的东西而设计的。没有回答这个问题,但还是想提一下。看。有一些解决方案会使TSomeClass.Create
过时。