Skip to main content

Foresight Test Kit Action

A GitHub Action to analyze test and/or coverage results. Foresight’s Test Kit action integrates with your Github Actions pipelines.

  • It makes simple to see failed tests, visualize performance of your tests and see their logs. It is the fastest way to access a failed test results in your workflow runs.
  • It correlates the changes to the codebase with the test coverage reports to determine how much of the changes are covered by the tests.

You need to integrate Test Kit action to your CI pipeline in order to use Test Monitoring and Change Impact Analysis features.

info

You'll need to have a reasonably modern version of node. This won't work with versions older than 9, for instance.

Prerequisites

Foresight analyzes your test and coverage report artifacts.

Available test framework and report pairs

Test frameworkReport formatFlaky support
CYPRESS1JSONYes
CYPRESS1JUNITNo
JUNITJSONYes
JUNITTXTNo
JESTJSONYes
JESTJUNITNo
PYTESTJSONYes
PYTESTJUNITNo
XUNIT2n/a*No
XUNIT2TRXNo
GOLANGJSONYes
GOLANGTEXTNo
ELIXIRJUNITNo
TESTNGn/a*No
info

You don't need to fill report format fields marked as n/a.


1 Cypress test report generation example

"e2e:junit": "cypress run --reporter junit --reporter-options 'mochaFile=results/foresight-test-[hash].xml'",

See detailed information on Cypress docs

Available coverage formats

Coverage formats
JACOCO/XML
COBERTURA/XML
GOLANG
LCOV/TXT

Usage

To use the action, add the following step after your test execution step. Please fill the test_format, test_framework and coverage_format fields by checking the supported options above.

You can get your api_key after sign up to Foresight.

- name: Foresight Test / Coverage Results
uses: runforesight/foresight-test-kit-action@v1
if: success() || failure()
with:
# api_key is optional if you add on public repository
api_key: <your_api_key>
# following 3 options are required if you want to use test monitoring features
test_format: <test_format>
test_framework: <test_framework>
test_path: <test_results_path>
# following 2 options are required if you want to use change impact analysis
coverage_format: <coverage_format>
coverage_path: <coverage_results_path>
# if you want to add multiple tags, add | before the first key
tags: <key:value>
Get your API key
Learn how to get your API Key

Configuration

OptionRequirementDescription
api_keyOptional - RequiredForesight Api Key. Optional if you are adding test kit to an open-source project
github_tokenOptionalAn alternative GitHub token, other than the default provided by GitHub Actions runner.
test_frameworkOptionalRuntime test framework name(jest, pytest, junit etc.)
test_formatOptionalRuntime test format name(trx, junit etc.)
test_pathOptionalTest results directory/file path.
coverage_formatOptionalRuntime coverage format name(jacoco/xml, cobertura/xml, golang etc.)
coverage_pathOptionalCoverage results directory/file path.
cli_versionOptionalInstalled Foresight cli version. Default is latest.
disable_actionOptionalDisable Foresight test kit action without removing from yml.
tagsOptionalAdd tag(s) to your test runs

Tagging your test runs

You can tag your test runs through test kit. This helps you to identify the test run you want to investigate in a quicker way.

Example

tags: | 
node_version:${{ matrix.node }}
event_name:${{github.event_name}}
tag_tryer1:"tryer_value1"

After you add your test tags, you are able to filter them on the test runs page.

Test tags