Visualize tests whose state changes most often. During software development, it is often common that some tests start to randomly fail,
but finding those tests is a tedious and time consuming problem. Flaky tests detection solves that problem by processing historical xunit test
results and checks which tests changes state most often. Flaky tests detection is available as Github Action plugin and
Python package. For usage, see example
at the actions
page.
Implementation is based on "Modeling and ranking flaky tests at Apple" by Kowalczyk, Emily & Nair, Karan & Gao, Zebao & Silberstein, Leo & Long, Teng & Memon, Atif.
n
days.n
runs.--test-history-csv
timestamp
, test_identifier
and test_status
.--junit-files
JUnit
test results.--grouping-option
days
to use n
days for fliprate calculation windows.runs
to use n
runs for fliprate calculation windows.--window-size
n
.--window-count
--top-n
--heatmap
test_history.csv
with daily calulations. 1 day windows, 7 day history and 5 tests printed out.
--test-history-csv=example_history/test_history.csv --grouping-option=days --window-size=1 --window-count=7 --top-n=5
JUnit
files with calculations per 5 runs. 15 runs history and 5 tests printed out.
--junit-files=example_history/junit_files --grouping-option=runs --window-size=5 --window-count=3 --top-n=5
test_history.csv
with daily calculations and heatmap generation. 1 day windows, 7 day history and 50 tests printed and generated to heatmaps.
--test-history-csv=example_history/test_history.csv --grouping-option=days --window-size=1 --window-count=7 --top-n=50 --heatmap
make install
make install_dev
make run_test
The package was developed by F-Secure Corporation and University of Helsinki in the scope of IVVES project. This work was labelled by ITEA3 and funded by local authorities under grant agreement “ITEA-2019-18022-IVVES”