Since we need to tackle CI stability I would like to bump this one if
anyone wants to say something :) I am full speed ahead with implementing
those.

*Proposed Breeze changes:*
>
>    - `./breeze` by default will start only the main 'airflow-testing'
>    image. This way no huge resource usage will be needed when breeze is
>    started by default
>    - './breeze --all-integrations` will start all dependent images (so we
>    will be able to run all tests)
>    - './breeze --integrations [kubernetes,cassandra,mongo,
>    rabbitmq,redis,openldap,kerberos] - you will be able to choose which
>    integrations you want to start
>    - When you run `breeze --backend postgres` it will only start postgres
>    not mysql and the other way round.
>
> I have PR in progress: https://github.com/apache/airflow/pull/7091
(depends on few others)

After this is merged ./breeze will only start 'airflow-testing' image. You
will be able to launch other docker images (mongo/cassandra and others)
with *--integration mongo --integration cassandra* etc. (or --integration
all to launch all of them). This will be great for local testing (resource
usage!). This will also work in CI ( I will split the test jobs into
separate ones).


> *Proposed Pytest marks:*
>
>    -
>    
> pytest.mark.integrations('kubernetes'),pytest.mark.integrations('cassandra'),.....
>    - pytest,mark.backends("postgres"), pytest,mark.backends("mysql"),
>    pytest.mark.backends("sqlite")
>
> During tests I will identify the tests that need particular integrations
and will mark/skip them appropriately and work out the right pytest
behaviour.

*Proposed Pytest behaviour:*
>
>    - `pytest` -> in Breeze will run all tests that are applicable within
>    the current environment:
>       - it will only run non-marked tests by default, applicable with
>       current selected backend
>       - when (for example) you stared cassandra is added it will
>       additionally run pytest.mark.integrations('cassandra')
>    - `pytest` in local environment by default will only run non-marked
>    tests
>    - `pytest --integrations [kubernetes, ....]` will only run the
>    integration tests selected (will convert the switch into the corresponding
>    markers (as explained in the example above)
>    - `pytest --backends [postgres| mysql | sqlite] will only run the
>    specific tests that use postgres/mysql/sqlite specific tests
>
> More details when I get to this one. Ideally all should be autodetected -
i.e. when you have no integration enabled, the corresponding tests should
be skipped, we should also be able to run tests for particular integration
or selected integrations with one command.

J.

Reply via email to