Skip to content

andrehora/pathspotter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pages-build-deployment

PathSpotter

PathSpotter is a tool for computing and exploring tested paths of Python methods. A tested path of a method represents a set of input values that will make the method behave in the same way, that is, execute the same lines of code.

PathSpotter generates HTML reports like these: calendar, csv, and gzip.

Install

First, create a virtual environment (and activate it):

python3 -m venv .venv			
source .venv/bin/activate

Next, clone and install SpotFlow:

git clone https://github.com/andrehora/spotflow
pip install -e ./spotflow

Then, clone and install PathSpotter:

git clone https://github.com/andrehora/pathspotter
pip install -e ./pathspotter

Quick usage

Let's export the tested paths for the test suite test_gzip of the Python Standard Library. This command generates reports in HTML and CSV formats:

python3 -m spotflow -t gzip -s pathspotter/pathspotter/runner.py -arg gzip test.test_gzip

Then, open the file report_html/gzip/index.html to see an HTML report like this. Open the folder report_csv/gzip to see a CSV report like this.

Usage details

This command runs and monitors a test suite called <test_suite> with SpotFlow and generates PathSpotter reports:

python3 -m spotflow -t <target_sut> -s <pathspotter_script> -arg <report_folder_name> <test_suite>

# Examples
python3 -m spotflow -t gzip -s pathspotter/pathspotter/runner.py -arg gzip test.test_gzip
python3 -m spotflow -t csv -s pathspotter/pathspotter/runner.py -arg csv test.test_csv
python3 -m spotflow -t calendar -s pathspotter/pathspotter/runner.py -arg calendar test.test_calendar

The first argument -t sets the target SUT to be monitored. The second argument -s sets the PathSpotter script that is executed to generate CSV and HTML reports. The third argument -arg sets the report folder name. The final argument (<test_suite>) is the command to execute the test suite.

More reports

See the repository tested_paths_dataset for more reports of popular projects, like Rich, Flask, and Pylint.

About

Exploring tested paths in Python programs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published