def test_generate_with_impact_analysis(self): tests_src = os.path.join(calculator_project_dir(), 'randoop') classes_dir = os.path.join(calculator_target_dir(), 'classes') randoop = Randoop(java=self.java, classpath=classes_dir, tests_src=tests_src, sut_class='br.ufal.ic.easy.operations.Sum', sut_classes=['br.ufal.ic.easy.operations.Sum']) randoop.parameters = [ '--time-limit=1', '--testclass=br.ufal.ic.easy.operations.Sum' ] safira = Safira(self.java, classes_dir, calculator_src_aor_1()) (suite_name, suite_dir, suite_classes_dir, suite_classes) = randoop.generate_with_impact_analysis(safira) self.assertTrue(suite_name.startswith('randoop')) self.assertTrue(os.path.exists(suite_dir)) self.assertTrue(len(get_java_files(suite_dir)) > 1) self.assertTrue(len(get_class_files(suite_classes_dir)) > 1) self.assertEquals(2, len(suite_classes)) shutil.rmtree(tests_src)
def test_generate_differential(self): tests_src = os.path.join(calculator_project_dir(), 'evosuite') evosuite = Evosuite(java=self.java, classpath=os.path.join(calculator_target_dir(), 'classes'), tests_src=tests_src, sut_class='br.ufal.ic.easy.operations.Sum', params=['-Dsearch_budget=1']) mutants = MuJava(java=self.java, mutants_dir=calculator_mutants_dir()).read_log() (suite_name, suite_dir, suite_classes_dir, suite_classes) = evosuite.generate_differential(mutants[1].dir) self.assertTrue(suite_name.startswith('evosuite')) self.assertTrue(os.path.exists(suite_dir)) self.assertTrue(len(get_java_files(suite_dir)) > 1) self.assertTrue(len(get_class_files(suite_classes_dir)) > 1) self.assertEquals(1, len(suite_classes)) shutil.rmtree(tests_src)
def _test_classes(self): classes = [] for class_file in sorted(get_class_files(self.suite_classes_dir)): filename, _ = os.path.splitext(class_file) if not filename.endswith('_scaffolding'): classes.append(filename.replace(os.sep, '.')) return classes
def test_get_class_files(self): classes = get_class_files(calculator_target_dir()) self.assertEqual(6, len(classes)) self.assertTrue('classes/br/ufal/ic/easy/Calculator.class' in classes) self.assertTrue( 'classes/br/ufal/ic/easy/operations/Sum.class' in classes) self.assertTrue( 'classes/br/ufal/ic/easy/operations/Operation.class' in classes) self.assertTrue( 'classes/br/ufal/ic/easy/operations/Div.class' in classes) self.assertTrue( 'classes/br/ufal/ic/easy/operations/Sub.class' in classes) self.assertTrue( 'classes/br/ufal/ic/easy/operations/Mul.class' in classes)
def test_generate(self): tests_src = os.path.join(calculator_project_dir(), 'randoop') randoop = Randoop(java=self.java, classpath=os.path.join(calculator_target_dir(), 'classes'), tests_src=tests_src, sut_class='br.ufal.ic.easy.operations.Sum') randoop.parameters = ['--time-limit=1'] (suite_name, suite_dir, suite_classes_dir, suite_classes) = randoop.generate() self.assertTrue(suite_name.startswith('randoop')) self.assertTrue(os.path.exists(suite_dir)) self.assertTrue(len(get_java_files(suite_dir)) > 1) self.assertTrue(len(get_class_files(suite_classes_dir)) > 1) self.assertEquals(1, len(suite_classes))
def _clean_class_files(directory): for file in get_class_files(directory): os.remove(os.path.join(directory, file))