From b895f8305c20a8840c2ea07901ce89a11f97e404 Mon Sep 17 00:00:00 2001 From: dannylewis-sheffield Date: Tue, 13 Mar 2018 16:02:22 +0000 Subject: [PATCH 1/3] Added options to config --- src/Extension.php | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/Extension.php b/src/Extension.php index aa3a2f7..0ed5d33 100644 --- a/src/Extension.php +++ b/src/Extension.php @@ -82,7 +82,16 @@ public function load(ContainerBuilder $container, array $config) $container->setParameter('behat.code_coverage.config.delete', $config['delete']); $container->setParameter('behat.code_coverage.config.drivers', $config['drivers']); $container->setParameter('behat.code_coverage.config.filter', $config['filter']); - $container->setParameter('behat.code_coverage.config.report', $config['report']); + + if(isset($config['report'])) { + $container->setParameter('behat.code_coverage.config.report', $config['report']); + }elseif(isset($config['format']) && isset($config['output'])) { + $container->setParameter('behat.code_coverage.config.report', array( + 'format' => $config['format'], + 'output' => $config['output'] + )); + } + } /** @@ -188,6 +197,31 @@ public function configure(ArrayNodeDefinition $builder) ->end() ->end() ->end() + ->arrayNode('format') + ->prototype('scalar')->end() + ->end() + ->arrayNode('output') + ->children() + ->scalarNode('clover') + ->useAttributeAsKey('name') + ->prototype('scalar')->end() + ->end() + ->scalarNode('crap4j') + ->useAttributeAsKey('name') + ->prototype('scalar')->end() + ->end() + ->arrayNode('html') + ->useAttributeAsKey('name') + ->prototype('scalar')->end() + ->end() + ->scalarNode('php')->end() + ->arrayNode('text') + ->useAttributeAsKey('name') + ->prototype('scalar')->end() + ->end() + ->scalarNode('xml')->end() + ->end() + ->end() ->end() ->end(); } From b461b9f6511d6d05bbb0a31b0d61b3b181495eb4 Mon Sep 17 00:00:00 2001 From: dannylewis-sheffield Date: Tue, 13 Mar 2018 16:04:17 +0000 Subject: [PATCH 2/3] Multiple reports if configured --- src/Service/ReportService.php | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/src/Service/ReportService.php b/src/Service/ReportService.php index e7142c6..8c5dd45 100644 --- a/src/Service/ReportService.php +++ b/src/Service/ReportService.php @@ -47,10 +47,37 @@ public function __construct(array $config, Factory $factory) */ public function generateReport(CodeCoverage $coverage) { - $format = $this->config['report']['format']; - $options = $this->config['report']['options']; + if(!empty($this->config['report']['format']) && !empty($this->config['report']['options'])){ + + $format = $this->config['report']['format']; + $options = $this->config['report']['options']; + + $report = $this->factory->create($format, $options); + $report->process($coverage); + + }elseif(!empty($this->config['report']['format']) && !empty($this->config['report']['output'])){ + + foreach($this->config['report']['format'] AS $format){ + + if(isset($this->config['report']['output'][$format])){ + + if(is_array($this->config['report']['output'][$format])) { + + $report = $this->factory->create($format, $this->config['report']['output'][$format]); + $report->process($coverage); + + }else{ + + $report = $this->factory->create($format, array('target' => $this->config['report']['output'][$format])); + $report->process($coverage); + + } + + } + + } + + } - $report = $this->factory->create($format, $options); - $report->process($coverage); } } From 43206eae349100aa6ae74007aa70513488a64c70 Mon Sep 17 00:00:00 2001 From: dannylewis-sheffield Date: Thu, 15 Mar 2018 11:27:06 +0000 Subject: [PATCH 3/3] Changed scalarNode to arrayNode --- src/Extension.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Extension.php b/src/Extension.php index 0ed5d33..ea4a67a 100644 --- a/src/Extension.php +++ b/src/Extension.php @@ -202,11 +202,11 @@ public function configure(ArrayNodeDefinition $builder) ->end() ->arrayNode('output') ->children() - ->scalarNode('clover') + ->arrayNode('clover') ->useAttributeAsKey('name') ->prototype('scalar')->end() ->end() - ->scalarNode('crap4j') + ->arrayNode('crap4j') ->useAttributeAsKey('name') ->prototype('scalar')->end() ->end()