コード例 #1
0
ファイル: test_base.py プロジェクト: thomasuster/pants
    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.'
        )
コード例 #2
0
ファイル: test_base.py プロジェクト: thomasuster/pants
    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.'
        )
コード例 #3
0
    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')