C# 带有本地化字符串的单元测试代码覆盖率不是100%

C# 带有本地化字符串的单元测试代码覆盖率不是100%,c#,asp.net-mvc,unit-testing,C#,Asp.net Mvc,Unit Testing,我们正在努力使我们的单元测试代码覆盖率尽可能接近100%。我们做得相当好,但由于本地化字符串(设计为优雅地失败),结果看起来比实际情况糟糕得多 以下是我的模型中未涵盖的代码示例: #region strings public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } } public string ArchivedStr { get

我们正在努力使我们的单元测试代码覆盖率尽可能接近100%。我们做得相当好,但由于本地化字符串(设计为优雅地失败),结果看起来比实际情况糟糕得多

以下是我的模型中未涵盖的代码示例:

    #region strings
    public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }
    public string ArchivedStr { get { return Localizer.GetString("Resources.Order.Status", "archived", "archived"); } }
    public string Closed30Str { get { return Localizer.GetString("Resources.Order.Status", "closed30", "closed30"); } }
    public string Closed90Str { get { return Localizer.GetString("Resources.Order.Status", "closed90", "closed90"); } }
    public string GoStr { get { return Localizer.GetString("Resources.Global", "go", "go"); } }
    public string OpenStr { get { return Localizer.GetString("Resources.Order.Status", "open", "open"); } }
    public string OrderStatusStr { get { return Localizer.GetString("Resources.Order.Status", "orderStatus", "orderStatus"); } }
    public string SelectedCustStr { get { return Localizer.GetString("Resources.Order.Status", "selectedCust", "selectedCust"); } }
    public string StartTypingStr { get { return Localizer.GetString("Resources.Order.Status", "startTyping", "startTyping"); } }
    public string TitleStr { get { return Localizer.GetString("Resources.Order.Status", "title", "title"); } }
    #endregion
我真的不想将应用程序中的数百个字符串添加到单元测试中,但我也不希望它们影响覆盖率结果

[ExcludeFromCodeCoverage]
public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }
如何从代码覆盖率分析中排除这些字符串,以便更准确地了解重要的测试?

您正在寻找。将此应用于代码将从代码覆盖率结果中排除它

[ExcludeFromCodeCoverage]
public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }

问题真的是。。。为什么要添加这些以达到100%的代码覆盖率?100%的代码覆盖率不会告诉开发人员关于项目的任何信息。这是你的经理吹嘘的重点。

这就是营销。如果你把“我们100%被测试覆盖”放在产品网站上-你可以更贵地出售它,而我不太关心100%(不过这会很好),我确实想知道我想要测试的代码是否覆盖在100%、50%、10%等。其中字符串中的100%关键代码测试可能看起来像10%。至于
排除…
,我希望我不必为每个字符串都添加它。我想没有办法覆盖一个字符串区域或所有本地化字符串?或者标准化一个简单的测试,这意味着我不必单独测试系统中的每个字符串?我唯一能想到的就是将它提取到它自己的类中,您可以完全排除它。