apache/airflow

Improve Code Coverage for Airflow

Open

#35,127 opened on Oct 23, 2023

View on GitHub
 (4 comments) (3 reactions) (0 assignees)Python (16,781 forks)batch import
good first issuekind:feature

Repository metrics

Stars
 (44,809 stars)
PR merge metrics
 (Avg merge 7d 18h) (834 merged PRs in 30d)

Description

Description

Airflow code coverage is currently at an impressive 84% but we would like to improve the code coverage and get to at least 95%. This is a call to help improve the code coverage by adding the missing tests.

You can use the code coverage tool to find modules to improve. Here is the link to the documentation: https://github.com/apache/airflow/blob/main/contributing-docs/testing/unit_tests.rst#code-coverage

Below is how you can discover modules to work on, follow the above link for up-to-date instruction:

  • Initiate a breeze shell.
  • Execute one of the commands below based on the desired coverage area: Core: python scripts/cov/core_coverage.py REST API: python scripts/cov/restapi_coverage.py CLI: python scripts/cov/cli_coverage.py Webserver: python scripts/cov/www_coverage.py After execution, the coverage report will be available at: http://localhost:28000/dev/coverage/index.html.
  • Choose any of the modules and improve it

Note In order to see the coverage report, you must start webserver first in breeze environment via airflow webserver. Once you enter breeze, you can start tmux (terminal multiplexer) and split the terminal (by pressing ctrl-B " for example) to continue testing and run the webserver in one terminal and run tests in the second one (you can switch between the terminals with ctrl-B <arrow>).

PRs should be per module or related codebase

UPDATE (added by @potiuk )

Also you might want to have a look at #35442 - we had a "project structure" test that was supposed to detect modules that do not have corresponding tests and fail our build in this case. This test has been however broken for a long time and we have many missing modules on the list.

Contributor guide