本文整理汇总了C#中Palmmedia.ReportGenerator.Parser.Analysis.Class.AddMethodMetric方法的典型用法代码示例。如果您正苦于以下问题:C# Class.AddMethodMetric方法的具体用法?C# Class.AddMethodMetric怎么用?C# Class.AddMethodMetric使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Palmmedia.ReportGenerator.Parser.Analysis.Class
的用法示例。
在下文中一共展示了Class.AddMethodMetric方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Merge_MergeClassWithOneFileAndOneMethodMetric_FileIsStored
public void Merge_MergeClassWithOneFileAndOneMethodMetric_FileIsStored()
{
var assembly = new Assembly("C:\\test\\TestAssembly.dll");
var sut = new Class("Test", assembly);
var classToMerge = new Class("Test", assembly);
var file = new CodeFile("C:\\temp\\Program.cs", new int[0]);
var methodMetric = new MethodMetric("Test");
classToMerge.AddFile(file);
classToMerge.AddMethodMetric(methodMetric);
sut.Merge(classToMerge);
Assert.AreEqual(file, sut.Files.First(), "Not equal");
Assert.AreEqual(1, sut.Files.Count(), "Wrong number of classes");
Assert.AreEqual(methodMetric, sut.MethodMetrics.First(), "Not equal");
Assert.AreEqual(1, sut.MethodMetrics.Count(), "Wrong number of method metrics");
}
示例2: SetMethodMetrics
/// <summary>
/// Extracts the metrics from the given <see cref="XElement">XElements</see>.
/// </summary>
/// <param name="methods">The methods.</param>
/// <param name="class">The class.</param>
private static void SetMethodMetrics(IEnumerable<XElement> methods, Class @class)
{
foreach (var methodGroup in methods.GroupBy(m => m.Element("Name").Value))
{
var method = methodGroup.First();
// Exclude properties and lambda expressions
if (method.Attribute("skippedDueTo") != null
|| method.HasAttributeWithValue("isGetter", "true")
|| method.HasAttributeWithValue("isSetter", "true")
|| Regex.IsMatch(methodGroup.Key, "::<.+>.+__"))
{
continue;
}
var metrics = new[]
{
new Metric(
"Cyclomatic Complexity",
methodGroup.Max(m => int.Parse(m.Attribute("cyclomaticComplexity").Value, CultureInfo.InvariantCulture))),
new Metric(
"Sequence Coverage",
methodGroup.Max(m => decimal.Parse(m.Attribute("sequenceCoverage").Value, CultureInfo.InvariantCulture))),
new Metric(
"Branch Coverage",
methodGroup.Max(m => decimal.Parse(m.Attribute("branchCoverage").Value, CultureInfo.InvariantCulture)))
};
@class.AddMethodMetric(new MethodMetric(methodGroup.Key, metrics));
}
}
示例3: SetMethodMetrics
/// <summary>
/// Extracts the metrics from the given <see cref="XElement">XElements</see>.
/// </summary>
/// <param name="methods">The methods.</param>
/// <param name="class">The class.</param>
private static void SetMethodMetrics(IEnumerable<XElement> methods, Class @class)
{
foreach (var method in methods)
{
string methodName = method.Attribute("name").Value;
// Exclude properties and lambda expressions
if (methodName.StartsWith("get_", StringComparison.Ordinal)
|| methodName.StartsWith("set_", StringComparison.Ordinal)
|| Regex.IsMatch(methodName, "<.+>.+__"))
{
continue;
}
var metrics = new[]
{
new Metric(
"Blocks covered",
int.Parse(method.Attribute("blocks_covered").Value, CultureInfo.InvariantCulture)),
new Metric(
"Blocks not covered",
int.Parse(method.Attribute("blocks_not_covered").Value, CultureInfo.InvariantCulture))
};
@class.AddMethodMetric(new MethodMetric(methodName, metrics));
}
}
示例4: SetMethodMetrics
/// <summary>
/// Extracts the metrics from the given <see cref="XElement">XElements</see>.
/// </summary>
/// <param name="methods">The methods.</param>
/// <param name="class">The class.</param>
private static void SetMethodMetrics(IEnumerable<XElement> methods, Class @class)
{
foreach (var methodGroup in methods.GroupBy(m => m.Element("Name").Value))
{
var method = methodGroup.First();
// Exclude properties and lambda expressions
if (method.Attribute("skippedDueTo") != null
|| method.HasAttributeWithValue("isGetter", "true")
|| method.HasAttributeWithValue("isSetter", "true")
|| Regex.IsMatch(methodGroup.Key, "::<.+>.+__"))
{
continue;
}
string methodName = Regex.Replace(
methodGroup.Key,
MethodRegex,
m => string.Format(CultureInfo.InvariantCulture, "{0}({1})", m.Groups["MethodName"].Value, m.Groups["Arguments"].Value.Length > 0 ? "..." : string.Empty));
var metrics = new[]
{
new Metric(
"Cyclomatic Complexity",
methodGroup.Max(m => int.Parse(m.Attribute("cyclomaticComplexity").Value, CultureInfo.InvariantCulture))),
new Metric(
"Sequence Coverage",
methodGroup.Max(m => int.Parse(m.Attribute("sequenceCoverage").Value, CultureInfo.InvariantCulture))),
new Metric(
"Branch Coverage",
methodGroup.Max(m => int.Parse(m.Attribute("branchCoverage").Value, CultureInfo.InvariantCulture)))
};
@class.AddMethodMetric(new MethodMetric(methodName, metrics));
}
}