enable code coverage computation for API BDD tests

Fixes #505.
This commit is contained in:
Sarah Hoffmann
2017-07-17 22:59:13 +02:00
parent a27e191335
commit 3fba5e7867
4 changed files with 51 additions and 2 deletions

View File

@@ -0,0 +1,13 @@
<?php
require_once 'SebastianBergmann/CodeCoverage/autoload.php';
$covfilter = new SebastianBergmann\CodeCoverage\Filter();
$covfilter->addDirectoryToWhitelist($_SERVER['COV_PHP_DIR']);
$coverage = new SebastianBergmann\CodeCoverage\CodeCoverage(null, $covfilter);
$coverage->start($_SERVER['COV_TEST_NAME']);
include $_SERVER['COV_SCRIPT_FILENAME'];
$coverage->stop();
$writer = new \SebastianBergmann\CodeCoverage\Report\PHP;
$writer->process($coverage, $_SERVER['PHP_CODE_COVERAGE_FILE']);

View File

@@ -282,7 +282,18 @@ def send_api_query(endpoint, params, fmt, context):
if hasattr(context, 'http_headers'):
env.update(context.http_headers)
cmd = ['/usr/bin/php-cgi', env['SCRIPT_FILENAME']]
cmd = ['/usr/bin/php-cgi', '-f']
if context.nominatim.code_coverage_path:
env['COV_SCRIPT_FILENAME'] = env['SCRIPT_FILENAME']
env['COV_PHP_DIR'] = os.path.join(context.nominatim.src_dir, "lib")
env['COV_TEST_NAME'] = '%s:%s' % (context.scenario.filename, context.scenario.line)
env['SCRIPT_FILENAME'] = \
os.path.join(os.path.split(__file__)[0], 'cgi-with-coverage.php')
cmd.append(env['SCRIPT_FILENAME'])
env['PHP_CODE_COVERAGE_FILE'] = context.nominatim.next_code_coverage_file()
else:
cmd.append(env['SCRIPT_FILENAME'])
for k,v in params.items():
cmd.append("%s=%s" % (k, v))