项目作者: interviewstreet

项目描述 :
Code Coverage For Twig Templates
高级语言: Python
项目地址: git://github.com/interviewstreet/twig-coverage-merger.git
创建时间: 2018-03-24T11:53:18Z
项目社区:https://github.com/interviewstreet/twig-coverage-merger

开源协议:MIT License

下载


twig-coverage-merger

Map the code coverage report from twig template cache file to template itself

Enable Twig Template Cache

  1. new Twig_Environment(
  2. new Twig_Loader_Filesystem('twig-templates-dir'),
  3. array(
  4. 'cache' => 'twig-template-cache-dir'
  5. )
  6. );

Add Twig Template Cache to Coverage

  1. <filter>
  2. <whitelist processUncoveredFilesFromWhitelist="true">
  3. <directory suffix=".php">twig-template-cache-dir</directory>
  4. </whitelist>
  5. </filter>

Generate Clover Coverage

  1. <logging>
  2. <log type="coverage-clover" target="clover.xml"></log>
  3. </logging>

Dependency

python3 and the following two packages should be installed:

  1. sudo pip3 install bs4
  2. CFLAGS="-O0" sudo pip3 install lxml

Generate Coverage JSON

The coverage.py file generates the report:

  1. usage: coverage.py [-h] [-v] [-p clover.xml] [-m json-reports-dir] -r my-repo
  2. [-o report.json]
  3. optional arguments:
  4. -h, --help show this help message and exit
  5. -v, --verbose increase output verbosity
  6. -p clover.xml, --process clover.xml
  7. generate JSON report from clover xml
  8. -m json-reports-dir, --merge json-reports-dir
  9. merge multiple JSON reports
  10. -r my-repo, --repo my-repo
  11. repository name to trim the path prefix
  12. -o report.json, --output report.json
  13. output file name

You can either process one XML report or merge multiple JSON reports:

  1. python3 coverage.py --process clover.xml --repo my-repo --output report.json
  2. python3 coverage.py --merge json-reports-dir --repo my-repo --output merged.json

Upload Coverage to Code Climate

The patch.py file fetches the ci_service, environment, and git objects by executing .cc-test-reporter format-coverage:

  1. usage: patch.py [-h] [-e cc-test-reporter] -r my-repo [-i report.json]
  2. [-o codeclimate.json]
  3. optional arguments:
  4. -h, --help show this help message and exit
  5. -e cc-test-reporter, --exec cc-test-reporter
  6. cc-test-reporter binary
  7. -r my-repo, --repo my-repo
  8. repository name to trim the path prefix
  9. -i report.json, --input report.json
  10. the JSON report
  11. -o codeclimate.json, --output codeclimate.json
  12. output file name

You can generate the JSON report compatible with Code Climate:

  1. python3 patch.py --exec cc-test-reporter --repo my-repo --input report.json --output codeclimate.json

Now, you can use ./cc-test-reporter upload-coverage to upload the coverage report.