def test_skips_non_coverage_targets(self): """ :API: public """ options = attrdict(coverage=True, coverage_jvm_options=[]) settings = CoverageTaskSettings(options, None, self.pants_workdir, None, None, fake_log()) coverage = CoverageEngineForTesting(settings) classpath_products = ClasspathProducts(self.pants_workdir) self._add_for_target(classpath_products, self.jar_lib, '/jar/lib/classpath') self._add_for_target(classpath_products, self.binary_target, '/binary/target/classpath') self._add_for_target(classpath_products, self.app_target, '/app/target/classpath') self._add_for_target(classpath_products, self.java_target, '/java/target/classpath.jar') coverage.initialize_instrument_classpath([ self.jar_lib, self.binary_target, self.app_target, self.java_target ], classpath_products) self.assertEquals( len(coverage.copy2_calls), 1, 'Should only be 1 call for the single java_library target.') self._assert_target_copy(coverage, '/java/target/classpath.jar', '/coverage/classes/foo.foo-java/0') self.assertEquals( len(coverage.copytree_calls), 0, 'Should be no copytree calls when targets are not coverage targets.' )
def test_target_with_multiple_path_entries(self): """ :API: public """ options = attrdict(coverage=True, coverage_jvm_options=[]) settings = CoverageTaskSettings(options, None, self.pants_workdir, None, None, fake_log()) coverage = CoverageEngineForTesting(settings) classpath_products = ClasspathProducts(self.pants_workdir) self._add_for_target(classpath_products, self.java_target, '/java/target/first.jar') self._add_for_target(classpath_products, self.java_target, '/java/target/second.jar') self._add_for_target(classpath_products, self.java_target, '/java/target/third.jar') coverage.initialize_instrument_classpath([self.java_target], classpath_products) self.assertEquals( len(coverage.copy2_calls), 3, 'Should be 3 call for the single java_library target.') self._assert_target_copy(coverage, '/java/target/first.jar', '/coverage/classes/foo.foo-java/0') self._assert_target_copy(coverage, '/java/target/second.jar', '/coverage/classes/foo.foo-java/1') self._assert_target_copy(coverage, '/java/target/third.jar', '/coverage/classes/foo.foo-java/2') self.assertEquals( len(coverage.copytree_calls), 0, 'Should be no copytree calls when targets are not coverage targets.' )
def test_target_annotation_processor(self): options = attrdict(coverage=True, coverage_jvm_options=[]) settings = CoverageTaskSettings(options, None, self.pants_workdir, None, None, fake_log()) coverage = TestCoverageEngine(settings) classpath_products = ClasspathProducts(self.pants_workdir) self._add_for_target(classpath_products, self.annotation_target, '/anno/target/dir') coverage.initialize_instrument_classpath([self.annotation_target], classpath_products) self.assertEquals( len(coverage.copy2_calls), 0, "Should be 0 call for the single annotation target.") self._assert_target_copytree(coverage, '/anno/target/dir', '/coverage/classes/foo.foo-anno/0')