コード例 #1
0
        public void WhenRunningTaskShouldComputeMetrics()
        {
            ITaskItem[] providers = new TaskItemMock[1];
            providers[0] = new TaskItemMock("MSBuildCodeMetrics.Core.UnitTests.Mock.CodeMetricsProviderSingleFileMock, MSBuildCodeMetrics.Core.UnitTests").
                AddMetadata("Data", "<Metric Name=\"LinesOfCode\"><Measure " +
                    "Name=\"Method1\" Value=\"1\" /><Measure Name=\"Method2\" Value=\"2\" /><Measure " +
                    "Name=\"Method3\" Value=\"5\" /></Metric>").
                AddMetadata("ProviderName", "CodeMetricsProviderMock");

            ITaskItem[] metrics = new TaskItemMock[1];
            metrics[0] = new TaskItemMock("LinesOfCode").
                AddMetadata("ProviderName", "CodeMetricsProviderMock").
                AddMetadata("Ranges", "2;3").
                AddMetadata("Files", "C:\\foo.txt");

            FileStreamFactoryMock streamFactory = new FileStreamFactoryMock();

            CodeMetrics task = new CodeMetrics(streamFactory);
            task.BuildEngine = new BuildEngineMock();
            task.Providers = providers;
            task.OutputFileName = "report.xml";
            task.ShowDetailsReport = true;
            task.ShowSummaryReport = true;
            task.Metrics = metrics;
            task.FileOutput = true;
            Assert.AreEqual(true, task.Execute());

            streamFactory.OutputStream.Seek(0, SeekOrigin.Begin);
            MSBuildCodeMetricsReport report = MSBuildCodeMetricsReport.Deserialize(streamFactory.OutputStream);
            Assert.AreEqual(1, report.Details.Metrics.Count);
            Assert.AreEqual("LinesOfCode", report.Details.Metrics[0].MetricName);
            Assert.AreEqual("Method3", report.Details.Metrics[0].Measures[0].MeasureName);
            Assert.AreEqual(5, report.Details.Metrics[0].Measures[0].Value);
        }
コード例 #2
0
        public void Initialize()
        {
            _files = new List<string>().AddItem("file1.cs");
            FileStreamFactoryMock streamFactory = new FileStreamFactoryMock();
            streamFactory.AddFileMock("file1.cs", TestResources.SourceFile1);

            _provider = new CountLOCProvider(streamFactory);
        }
コード例 #3
0
        public void WhenCallingComputeMetricsWithoutSpecifyingFileTypeShouldIgnoreFile()
        {
            List<string> files = new List<string>().AddItem("file1.cs");
            FileStreamFactoryMock streamFactory = new FileStreamFactoryMock();
            streamFactory.AddFileMock("file1.cs", TestResources.SourceFile1);

            CountLOCProvider provider = new CountLOCProvider(streamFactory);
            provider.AddMetadata("FileTypes", ".vb=VB.NET");
            var measures = provider.ComputeMetrics(new List<string>().AddItem("FileLOC").AddItem("EmptyLOC").AddItem("CommentLOC"), files).ToList();
            Assert.AreEqual(0, measures.Count);
        }
        public void TestCountProjectsByProjectType()
        {
            List<string> files = new List<string>().AddItem("file1.csproj").AddItem("file2.csproj");
            FileStreamFactoryMock streamFactory = new FileStreamFactoryMock();
            streamFactory.AddFileMock("file1.csproj", TestResources.Project1);
            streamFactory.AddFileMock("file2.csproj", TestResources.Project2);

            CountProjectsByProjectTypeProvider provider = new CountProjectsByProjectTypeProvider(streamFactory);
            var measures = provider.ComputeMetrics(new List<string>().AddItem("ProjectTypeCount"), files).ToList();
            Assert.AreEqual("Library", measures[0].MeasureName);
            Assert.AreEqual(2, measures[0].Value);
        }
コード例 #5
0
        public void WhenCallingComputeMetricsShouldReturnMeasures()
        {
            List<string> files = new List<string>().AddItem("file1.cs");
            FileStreamFactoryMock streamFactory = new FileStreamFactoryMock();
            streamFactory.AddFileMock("file1.cs", TestResources.SourceFile1);

            CountLOCProvider provider = new CountLOCProvider(streamFactory);
            provider.AddMetadata("FileTypes", ".cs=C#");
            var measures = provider.ComputeMetrics(new List<string>().AddItem("FileLOC").AddItem("EmptyLOC").AddItem("CommentLOC"), files).ToList();
            Assert.AreEqual("TotalLOC", measures[0].MetricName);
            Assert.AreEqual("C#", measures[0].MeasureName);
            Assert.AreEqual(34, measures[0].Value);
            Assert.AreEqual("EmptyLOC", measures[2].MetricName);
            Assert.AreEqual("C#", measures[2].MeasureName);
            Assert.AreEqual(3, measures[2].Value);
            Assert.AreEqual("CommentLOC", measures[3].MetricName);
            Assert.AreEqual("C#", measures[3].MeasureName);
            Assert.AreEqual(7, measures[3].Value);
            Assert.AreEqual("CodeLOC", measures[1].MetricName);
            Assert.AreEqual("C#", measures[1].MeasureName);
            Assert.AreEqual(24, measures[1].Value);
        }