本文整理汇总了C#中Palmmedia.ReportGenerator.Parser.Analysis.Class类的典型用法代码示例。如果您正苦于以下问题:C# Class类的具体用法?C# Class怎么用?C# Class使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Class类属于Palmmedia.ReportGenerator.Parser.Analysis命名空间,在下文中一共展示了Class类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: 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.Element("MethodName").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.Element("BlocksCovered").Value, CultureInfo.InvariantCulture)),
new Metric(
"Blocks not covered",
int.Parse(method.Element("BlocksNotCovered").Value, CultureInfo.InvariantCulture))
};
@class.AddMethodMetric(new MethodMetric(methodName, metrics));
}
}
示例2: CreateClassReport
/// <summary>
/// Creates a class report.
/// </summary>
/// <param name="class">The class.</param>
/// <param name="fileAnalyses">The file analyses that correspond to the class.</param>
public override void CreateClassReport(Class @class, IEnumerable<FileAnalysis> fileAnalyses)
{
using (var renderer = new HtmlRenderer(false, this.javaScriptContent))
{
this.CreateClassReport(renderer, @class, fileAnalyses);
}
}
示例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 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));
}
}
示例4: HistoricCoverage
/// <summary>
/// Initializes a new instance of the <see cref="HistoricCoverage" /> class.
/// </summary>
/// <param name="class">The class.</param>
/// <param name="executionTime">The execution time.</param>
public HistoricCoverage(Class @class, DateTime executionTime)
: this(executionTime)
{
this.CoveredLines = @class.CoveredLines;
this.CoverableLines = @class.CoverableLines;
this.TotalLines = @class.TotalLines.GetValueOrDefault();
this.CoveredBranches = @class.CoveredBranches.GetValueOrDefault();
this.TotalBranches = @class.TotalBranches.GetValueOrDefault();
}
示例5: AddFile_AddSingleFile_FileIsStored
public void AddFile_AddSingleFile_FileIsStored()
{
var assembly = new Assembly("C:\\test\\TestAssembly.dll");
var sut = new Class("Test", assembly);
var file = new CodeFile("C:\\temp\\Program.cs", new int[0]);
sut.AddFile(file);
Assert.AreEqual(file, sut.Files.First(), "Not equal");
Assert.AreEqual(1, sut.Files.Count(), "Wrong number of classes");
}
示例6: Constructor
public void Constructor()
{
Assembly assembly = new Assembly("C:\\test\\TestAssembly.dll");
string classname = "TestClass";
var sut = new Class(classname, assembly);
Assert.AreEqual(assembly, sut.Assembly, "Not equal");
Assert.AreEqual(classname, sut.Name, "Not equal");
}
示例7: AddClass_AddSingleClass_ClassIsStored
public void AddClass_AddSingleClass_ClassIsStored()
{
var sut = new Assembly("C:\\test\\TestAssembly.dll");
var @class = new Class("Test", sut);
sut.AddClass(@class);
Assert.AreEqual(@class, sut.Classes.First(), "Not equal");
Assert.AreEqual(1, sut.Classes.Count(), "Wrong number of classes");
}
示例8: Merge_MergeAssemblyWithOneClass_ClassIsStored
public void Merge_MergeAssemblyWithOneClass_ClassIsStored()
{
var sut = new Assembly("C:\\test\\TestAssembly.dll");
var assemblyToMerge = new Assembly("C:\\test\\TestAssembly.dll");
var @class = new Class("Test", sut);
assemblyToMerge.AddClass(@class);
sut.Merge(assemblyToMerge);
Assert.AreEqual(@class, sut.Classes.First(), "Not equal");
Assert.AreEqual(1, sut.Classes.Count(), "Wrong number of classes");
}
示例9: Equals
public void Equals()
{
Assembly assembly = new Assembly("C:\\test\\TestAssembly.dll");
string classname = "TestClass";
var target1 = new Class(classname, assembly);
var target2 = new Class(classname, assembly);
var target3 = new Class(classname + "123", assembly);
Assert.IsTrue(target1.Equals(target2), "Objects are not equal");
Assert.IsFalse(target1.Equals(target3), "Objects are equal");
Assert.IsFalse(target1.Equals(null), "Objects are equal");
Assert.IsFalse(target1.Equals(new object()), "Objects are equal");
}
示例10: 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");
}
示例11: Merge_MergeClassWithCoverageQuota_FileIsStored
public void Merge_MergeClassWithCoverageQuota_FileIsStored()
{
var assembly = new Assembly("C:\\test\\TestAssembly.dll");
var sut = new Class("Test", assembly);
var classToMerge = new Class("Test", assembly)
{
CoverageQuota = 15
};
sut.Merge(classToMerge);
Assert.AreEqual(15, sut.CoverageQuota);
classToMerge = new Class("Test", assembly)
{
CoverageQuota = 20
};
sut.Merge(classToMerge);
Assert.AreEqual(20, sut.CoverageQuota);
}
示例12: 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));
}
}
示例13: Merge
/// <summary>
/// Merges the given class with the current instance.
/// </summary>
/// <param name="class">The class to merge.</param>
internal void Merge(Class @class)
{
if (@class == null)
{
throw new ArgumentNullException(nameof(@class));
}
if (this.coverageQuota.HasValue && @class.coverageQuota.HasValue)
{
this.CoverageQuota = Math.Max(this.coverageQuota.Value, @class.coverageQuota.Value);
}
else if (@class.coverageQuota.HasValue)
{
this.CoverageQuota = @class.coverageQuota.Value;
}
foreach (var methodMetric in @class.methodMetrics)
{
var existingMethodMetric = this.methodMetrics.FirstOrDefault(m => m.Name == methodMetric.Name);
if (existingMethodMetric != null)
{
existingMethodMetric.Merge(methodMetric);
}
else
{
this.AddMethodMetric(methodMetric);
}
}
foreach (var file in @class.files)
{
var existingFile = this.files.FirstOrDefault(f => f.Path == file.Path);
if (existingFile != null)
{
existingFile.Merge(file);
}
else
{
this.AddFile(file);
}
}
}
示例14: SummaryClass
/// <summary>
/// Adds the coverage information of a class to the report.
/// </summary>
/// <param name="class">The class.</param>
public void SummaryClass(Class @class)
{
if (@class == null)
{
throw new ArgumentNullException("class");
}
string row = string.Format(
CultureInfo.InvariantCulture,
@"{0} & {1}\\",
EscapeLatexChars(@class.Name),
@class.CoverageQuota.HasValue ? @class.CoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + @"\%" : string.Empty);
this.reportTextWriter.WriteLine(row);
}
示例15: CreateClassReport
/// <summary>
/// Creates a class report.
/// </summary>
/// <param name="class">The class.</param>
/// <param name="fileAnalyses">The file analyses that correspond to the class.</param>
public override void CreateClassReport(Class @class, IEnumerable<FileAnalysis> fileAnalyses)
{
this.CreateClassReport(new XmlRenderer(), @class, fileAnalyses);
}