Collecting metrics¶
Generated metrics¶
The PTB allows you to collect various metrics on the quality of your project regarding Coverage, Security, and Static Code Analysis.
For each metric, there is a dedicated nox session, generating one or multiple files and based on a selected external Python tool.
| Nox session | Generated files | Based on | 
|---|---|---|
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
These metrics are computed for each element in your build matrix, e.g. for each
Python version defined in the file noxconfig.py:
@dataclass(frozen=True)
class Config:
    python_versions = ["3.9", "3.10", "3.11", "3.12", "3.13"]
The GitHub workflows of your project can:
- Use a build matrix, e.g. using different Python versions as shown above 
- Define multiple test sessions, e.g. for distinguishing fast vs. slow or expensive tests. 
Reporting metrics¶
Currently, the PTB offers two methods to aggregate the Generated metrics into a report:
- the nox session project:report
- This is an Exasol-specific summarization tool. For more information, see project:report. 
 
- the nox session 
- SonarQube analysis
- This summarization tool feeds into a feature-rich UI provided by Sonar. For further details, see SonarQube analysis 
 
Both of these reporting options require that the generated files from the Generated metrics
are existing and in the expected formats. As there are metrics for different Python
versions, the PTB uses only the metrics associated with the Python version named first
in the attribute python_versions of class Config to the reporting metrics tools.
To perform this validation, there are two nox sessions. Due to the direct
dependence on the nox session project:report and SonarQube Analysis on the
aforementioned nox sessions, all of these are executed in succession in the CI’s report.yml.
| Nox session | Actions | 
|---|---|
| 
 | 
 | 
| 
 | 
 |