Visual Studio 2013中的C#自定义代码覆盖率集成
我希望通过提供VS扩展或附加模块来提高我们软件部门的效率,以使用VS2013执行自定义代码覆盖 该企业中的特殊点是特殊代码段的覆盖范围,实际上由一条注释标记,如定义为任务标记的Visual Studio 2013中的C#自定义代码覆盖率集成,c#,visual-studio-2013,code-coverage,add-in,C#,Visual Studio 2013,Code Coverage,Add In,我希望通过提供VS扩展或附加模块来提高我们软件部门的效率,以使用VS2013执行自定义代码覆盖 该企业中的特殊点是特殊代码段的覆盖范围,实际上由一条注释标记,如定义为任务标记的//u STUFF document comment 例如,我想引入一个新属性RiskAttribute,以限定方法,但无法将相应的代码覆盖率结果与其他属性分开,以报告已覆盖了多少不可或缺的内容 /// <summary> /// Risk Attribute /// </summ
//u STUFF document comment
例如,我想引入一个新属性RiskAttribute
,以限定方法,但无法将相应的代码覆盖率结果与其他属性分开,以报告已覆盖了多少不可或缺的内容
/// <summary>
/// Risk Attribute
/// </summary>
public class RiskAttribute : Attribute
{
private readonly string _document;
private readonly string _comment;
/// <summary>
/// Constructor
/// </summary>
/// <param name="doc"></param>
/// <param name="comment"></param>
public RiskAttribute(string doc, string comment)
{
_document = doc;
_comment = comment;
}
/// <summary>
/// Document
/// </summary>
public string Document { get { return _document; } }
/// <summary>
/// Comment
/// </summary>
public string Comment { get { return _comment; } }
}
/// <summary>
/// Test class for Calculator
/// </summary>
[TestClass]
public class CalculatorTest
{
/// <summary>
/// Tests addition
/// </summary>
[TestMethod]
public void Test_Sub()
{
decimal a = 1;
decimal b = 2;
Assert.AreEqual((a - b), Calculator.Sub(a, b));
}
}
//
///计算器测试班
///
[测试类]
公共类计算器测试
{
///
///测试添加
///
[测试方法]
公共无效性测试_Sub()
{
十进制a=1;
十进制b=2;
Assert.AreEqual((a-b),Calculator.Sub(a,b));
}
}
谢谢您是否可以使用代码覆盖率工具获取整个应用程序的覆盖率,然后获取生成的覆盖率报告,并使用您的
riskdattribute
进行反射,以查找类/方法的覆盖率,从而生成第二个报告?这听起来很合理,但您能否通过一个示例更明确地说明问题,因为我不知道,如何以编程方式启动MS代码覆盖率工具?或者使用第三方工具,如或NCover。读取所述工具的输出(通常为XML)。使用反射查找具有属性的代码中的所有方法。将两者联系起来。我相信您会发现这是一次非常有价值的学习经历。我了解了如何使用vstestconsole.exe启动单元测试,它可以同时执行代码覆盖率选项。我将按照您的建议使用反射来检索具有所需属性的类。Shaun,你最终知道哪个vs工具负责解析任务令牌并在任务列表中显示结果吗?
/// <summary>
/// Test class for Calculator
/// </summary>
[TestClass]
public class CalculatorTest
{
/// <summary>
/// Tests addition
/// </summary>
[TestMethod]
public void Test_Sub()
{
decimal a = 1;
decimal b = 2;
Assert.AreEqual((a - b), Calculator.Sub(a, b));
}
}