コード例 #1
0
            public void MethodHasExpectedComplexity(string method, int expectedComplexity)
            {
                var tree        = CSharpSyntaxTree.ParseText(method);
                var compilation = CSharpCompilation.Create(
                    "x",
                    syntaxTrees: new[] { tree },
                    references:
                    new MetadataReference[]
                {
                    MetadataReference.CreateFromFile(typeof(object).Assembly.Location),
                    MetadataReference.CreateFromFile(typeof(Task).Assembly.Location)
                });
                //options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, false, null, null, null, new string[] { "System", "System.Threading.Tasks" }));

                var model      = compilation.GetSemanticModel(tree, true);
                var syntaxNode = tree
                                 .GetRoot()
                                 .DescendantNodes()
                                 .OfType <MethodDeclarationSyntax>()
                                 .First();

                var metrics = new m.Metrics();
                var timer   = metrics.Timer(
                    typeof(ProjectMetricTests),
                    "TestTimer",
                    m.TimeUnit.Milliseconds,
                    m.TimeUnit.Microseconds);

                var result = timer.Time(() => _counter.Calculate(syntaxNode, model));

                Assert.Equal(expectedComplexity, result);
            }
コード例 #2
0
		public async Task MeasureProjectAnalysisPerformance()
		{
			using (var workspace = MSBuildWorkspace.Create())
			{
				var path = @"..\..\..\ArchiMetrics.Common\ArchiMetrics.Common.csproj".GetLowerCaseFullPath();
				var project = await workspace.OpenProjectAsync(path).ConfigureAwait(false);
				var metrics = new metrics.Metrics();
				var timer = metrics.Timer(GetType(), "test", TimeUnit.Seconds, TimeUnit.Seconds);
				for (var i = 0; i < 5; i++)
				{
					var amount = timer.Time(() => PerformReview(project).Result);
				}

				Assert.Less(timer.Mean, 90.0);
			}
		}
コード例 #3
0
        public async Task MeasureSolutionAnalysisPerformance()
        {
            using (var workspace = MSBuildWorkspace.Create())
            {
                var path = @"..\..\..\..\archimetrics.sln".GetLowerCaseFullPath();
                var solution = await workspace.OpenSolutionAsync(path).ConfigureAwait(false);
                var metrics = new metrics.Metrics();
                var timer = metrics.Timer(GetType(), "test", TimeUnit.Seconds, TimeUnit.Seconds);
                for (var i = 0; i < 5; i++)
                {
                    var amount = timer.Time(() => PerformReview(solution).Result);
                }

                Assert.True(timer.Mean < 90.0);
            }
        }
コード例 #4
0
        public async Task MeasureProjectAnalysisPerformance()
        {
            using (var workspace = MSBuildWorkspace.Create())
            {
                var path    = @"..\..\..\..\src\ArchiMetrics.Analysis\ArchiMetrics.Analysis.csproj".GetLowerCaseFullPath();
                var project = await workspace.OpenProjectAsync(path).ConfigureAwait(false);

                var metrics = new metrics.Metrics();
                var timer   = metrics.Timer(GetType(), "test", TimeUnit.Seconds, TimeUnit.Seconds);
                for (var i = 0; i < 5; i++)
                {
                    var amount = timer.Time(() => PerformReview(project).Result);
                }

                Assert.True(timer.Mean < 90.0);
            }
        }
コード例 #5
0
        public async Task MeasureSolutionAnalysisPerformance()
        {
            using (var workspace = MSBuildWorkspace.Create())
            {
                var path     = @"..\..\..\archimetrics.sln".GetLowerCaseFullPath();
                var solution = await workspace.OpenSolutionAsync(path).ConfigureAwait(false);

                var metrics = new metrics.Metrics();
                var timer   = metrics.Timer(GetType(), "test", TimeUnit.Seconds, TimeUnit.Seconds);
                for (var i = 0; i < 5; i++)
                {
                    var amount = timer.Time(() => PerformReview(solution).Result);
                }

                Assert.Less(timer.Mean, 90.0);
            }
        }
コード例 #6
0
            public void MethodHasExpectedComplexity(string method, int expectedComplexity)
            {
                var tree = CSharpSyntaxTree.ParseText(method);
                var compilation = CSharpCompilation.Create(
                    "x",
                    syntaxTrees: new[] { tree },
                    references: new MetadataReference[] { MetadataReference.CreateFromFile(typeof(object).Assembly.Location), MetadataReference.CreateFromFile(typeof(Task).Assembly.Location) },
                    options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, usings: new[] { "System", "System.Threading.Tasks" }));

                var model = compilation.GetSemanticModel(tree, true);
                var syntaxNode = tree
                    .GetRoot()
                    .DescendantNodes()
                    .OfType<MethodDeclarationSyntax>()
                    .First();

                var metrics = new m.Metrics();
                var timer = metrics.Timer(
                    typeof(ProjectMetricTests),
                    "TestTimer",
                    m.TimeUnit.Milliseconds,
                    m.TimeUnit.Microseconds);

                var result = timer.Time(() => _counter.Calculate(syntaxNode, model));

                Assert.Equal(expectedComplexity, result);
            }
コード例 #7
0
 public MachineMetrics(Metrics metrics)
 {
     _metrics = metrics;
 }