コード例 #1
0
        public void detectTestCases()
        {
            //detect test cases in source
            sourceTestCaseDetector = new TestCaseDetector(sourceProject, srcMLexeLocation, "source");
            sourceTestCaseDetector.AnalyzeTestCases();
            sourceTestSummary = new HashSet <TestCaseSummary>();
            printTestCasesInProject(sourceProject, "present", sourceTestCaseDetector.AllTestCases);

            //detect test cases in target
            targetTestCaseDetector = new TestCaseDetector(targetProject, srcMLexeLocation, "target");
            targetTestCaseDetector.AnalyzeTestCases();
            targetTestSummary = new HashSet <TestCaseSummary>();
            printTestCasesInProject(targetProject, "present", targetTestCaseDetector.AllTestCases);
        }
コード例 #2
0
        public void detectTestCases()
        {
            DataController dc       = new DataController();
            var            projects = MiningUtility.GetProjectGroups();

            int    projectCount = 0, projectsNumber = projects.Count();
            string testCaseFileHeader = "project;parent;projectIsFork;testPackage;testClassName;testMethodName;testMethodParameters;testSourceFilePath;testStartingLine;testEndingLine;testStartingColumn;testEndingColumn;uutPackage;uutClassName;uutMethodName;uutMethodParameters;uutSourceFilePath;uutStartingLine;uutEndingLine;uutStartingColumn;uutEndingColumn";

            MiningUtility.createFileHeader(testCasesFile, testCaseFileHeader);
            string classesHeader = "project;parent;projectIsFork;package;className;methodName;methodParameters;SourceFilePath;StartingLine;EndingLine;StartingColumn;EndingColumn";

            MiningUtility.createFileHeader(classesAndMethodsFile, classesHeader);
            //extract clones per ecosystem
            foreach (ProjectGroup project in projects)
            {
                projectCount++;

                try
                {
                    string projectFolder = project.ProjectFolder;// "C:\\grouped\\3_android_packages_apps_Contacts\\LineageOS\\android_packages_apps_Contacts";


                    TestCaseDetector testCaseDetector = new TestCaseDetector(projectFolder, srcMLLocation);
                    testCaseDetector.AnalyzeTestCases();
                    HashSet <TestCaseID>      allTestCases       = testCaseDetector.AllTestCases;
                    HashSet <TestCaseSummary> projectTestSummary = null; // new HashSet<TestCaseSummary>();
                                                                         //projct parent

                    string parent = project.Ecosystem;

                    string projectName = project.Project;
                    bool   isFork      = projectName != parent;
                    Utilities.analyzeProjectTestCases(projectFolder, allTestCases, dc, srcMLLocation, testCasesFile, classesAndMethodsFile, projectName, parent, isFork);
                    Console.WriteLine($"Ecosystem: {project.Ecosystem}; Project:{projectCount}/{projectsNumber}");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
                }
            }
        }
コード例 #3
0
        private void doDetectProjectTestCases(ConcurrentDictionary <string, HashSet <TestCaseID> > projectTestCases, int projectId, string projectFolder, string parentPath, string ecosystem, string projectName, int count, int legnth, DataController dataController)
        {
            TestCaseDetector testCaseDetector = new TestCaseDetector(projectFolder, srcMLLocation);

            testCaseDetector.AnalyzeTestCases();
            HashSet <TestCaseID> allTestCases = testCaseDetector.AllTestCases;

            foreach (TestCaseID t in allTestCases)
            {
                t.ProjectID     = projectId;
                t.ProjectFolder = projectFolder;
                t.ParentPath    = parentPath;
                t.Ecosystem     = ecosystem;
                t.ProjectName   = projectName;


                dataController.AddTestCase(t);
            }
            //projectTestCases.TryAdd(projectFolder, allTestCases);
            Console.WriteLine($"Ecosystem: {projectName}, number:{count}/{legnth}");
        }