🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

github.com/codeclimate/test-reporter

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
t

github.com/codeclimate/test-reporter

v1.0.1
90

Supply Chain Security

100

Vulnerability

100

Quality

100

Maintenance

100

License

Uses eval

Supply chain risk

Package uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.

Found 1 instance in 1 package

Network access

Supply chain risk

This module accesses the network.

Found 1 instance in 1 package

Shell access

Supply chain risk

This module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.

Found 1 instance in 1 package

Version published
Created
Issues
98

cc-test-reporter

Report information about your CI builds to Code Climate.

Installation & Usage

Most CI systems allow configuration of commands to run as part of setup, before, and after a test build. Using Circle CI as an example:

machine:
  environment:
    CC_TEST_REPORTER_ID: ...

dependencies:
  post:
    - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
    - chmod +x ./cc-test-reporter

test:
  pre:
    - ./cc-test-reporter before-build

  post:
    - ./cc-test-reporter after-build --exit-code $EXIT_CODE

Where:

  • $EXIT_CODE should be the exit code of your test suite process. Some CI system expose this as an environment variable; for others, you may need to manually capture $? to provide it to after-build later. Providing this will prevent sending test coverage results for failed tests.

Code Climate: Enterprise

To report coverage to your locally-hosted Code Climate: Enterprise instance, export the CC_TEST_REPORTER_COVERAGE_ENDPOINT variable, or pass the --coverage-endpoint option to after-build.

CC_TEST_REPORTER_COVERAGE_ENDPOINT=https://codeclimate.my-domain.com/test_reports

Low-level Usage

The test reporter is implemented as a composition of lower-level commands, which may themselves be useful. See the man-pages for details of these commands.

Parallel Tests

Code Climate supports parallel test setups using sub-commands provided by the test reporter. Specifically, the test reporter has sub-commands to:

  • format partial results (format-coverage)
  • sum partial results into a single result (sum-coverage) and
  • upload the single result to Code Climate (upload-coverage)

To make use of these commands, parallel test support requires:

  • the ability to run commands after each batch of tests has completed (most CI systems support this)
  • the ability to run commands after all tests have completed (most CI systems support this)
  • uploading and downloading partial test coverage data to/from shared storage (using AWS S3, for example)

For example:

  • After each batch of tests:

    ./cc-test-reporter format-coverage --output "coverage/codeclimate.$N.json"
    aws s3 sync coverage/ "s3://my-bucket/coverage/$SHA"
    

    Where:

    • $N should be a unique identifier for that batch of tests
    • $SHA should be the commit for which the coverage was generated; you can use an existing, CI-provided variable or ./cc-test-reporter env to infer $GIT_COMMIT_SHA and use that.
  • After all tests:

    aws s3 sync "s3://my-bucket/coverage/$SHA" coverage/
    cc-test-reporter sum-coverage --output - --parts $PARTS coverage/codeclimate.*.json | \
      cc-test-reporter upload-coverage --input -
    

    Where:

    • $PARTS should be the number of payloads to sum.

Multiple Suites

Coverage from multiple suites can be sent to Code Climate by aggregating each suite's results into one final report.

  • After each test suite, run:
./cc-test-reporter format-coverage --output coverage/codeclimate.$SUITE.json
  • After all test suites, run:
./cc-test-reporter sum-coverage coverage/codeclimate.*.json | \
  ./cc-test-reporter upload-coverage

See the LICENSE.

FAQs

Package last updated on 18 May 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts