예제 #1
0
        private static void VerifyMeasureAndLocalize(
            string testTargetNames, string inDirPath, string expDirPath, DirectoryInfo outDir)
        {
            var ret = Inserter.Run(
                new[] {
                "-r",
                outDir.FullName,
                "-t",
                outDir.GetDirectory("test").FullName,
            });

            Assert.That(ret, Is.True);

            // jarとdllファイルが存在するか
            var jar = outDir.GetFile("CoverageWriter.jar");

            Assert.That(jar.Exists, Is.True);

            var covInfoFile  = outDir.GetFile(OccfNames.CoverageInfo);
            var testInfoFile = outDir.GetFile(OccfNames.TestInfo);
            var recordFile   = outDir.GetFile(OccfNames.Record);
            var resultFile   = outDir.GetFile("testresult.txt");

            var targets = Directory.EnumerateFiles(
                expDirPath, "*.java",
                SearchOption.AllDirectories)
                          .Concat(
                Directory.EnumerateFiles(
                    expDirPath, OccfNames.BackupSuffix,
                    SearchOption.AllDirectories))
                          .Concat(new[] { covInfoFile.FullName, testInfoFile.FullName });

            foreach (var target in targets)
            {
                AssertEqualFiles(target, expDirPath, inDirPath);
            }

            Compile(outDir.FullName);
            RunTest(outDir.FullName, testTargetNames);

            var covInfo  = CoverageInfo.Read(covInfoFile);
            var testInfo = TestInfo.Read(testInfoFile);

            testInfo.InitializeForStoringData(true);
            BugLocalizer.ReadJUnitResult(resultFile, testInfo);
            CoverageDataReader.ReadFile(testInfo, recordFile);

            var localizeStatements = BugLocalizer.LocalizeStatements(covInfo, testInfo,
                                                                     "metrics/BugLocalization.py");

            Assert.That(localizeStatements, Is.Not.Null);
        }
        private static void VerifyMeasureAndLocalize(
            string inDirPath, string expDirPath,
            DirectoryInfo outDir, string outDirPath)
        {
            var profile = LanguageSupports.GetCoverageModeByClassName("C");

            Inserter.InsertMeasurementCode(outDir, new Collection <FileInfo>(), null, outDir, profile, RecordingMode.TextFile);

            // .cと.hファイルが存在するか
            Assert.That(
                File.Exists(Path.Combine(outDirPath, "covman.c")),
                Is.True);
            Assert.That(
                File.Exists(Path.Combine(outDirPath, "covman.h")),
                Is.True);

            var covinfo  = Path.Combine(outDirPath, OccfNames.CoverageInfo);
            var testinfo = Path.Combine(outDirPath, OccfNames.TestInfo);

            var targets = Directory.EnumerateFiles(
                expDirPath, "*.c",
                SearchOption.AllDirectories)
                          .Concat(
                Directory.EnumerateFiles(
                    expDirPath, OccfNames.BackupSuffix,
                    SearchOption.AllDirectories))
                          .Concat(new[] { covinfo, testinfo });

            foreach (var target in targets)
            {
                AssertEqualFiles(target, expDirPath, inDirPath);
            }

            Compile(outDirPath);
            RunTest(outDirPath);

            var ret = BugLocalizer.Run(
                new[] {
                outDirPath,
                Path.Combine(outDirPath, "testresult.txt")
            });

            Assert.That(ret, Is.True);
        }