Automated Test Repository for the VIPER Ecosystem
This repository will be used to build and run integration tests for the VIPER Ecosystem. It will install all components and run the available tests in the CI. Structure of this repository:
- ci: configuration for CI system
- (docs): TBD
- requirements: requirements to build dependencies
- scripts: scripts to generate reports and for installation
- tests/integration: workflow integration tests
This repository runs integration and component tests against VIPER components in editable mode, with branch/tag/commit selection per component. The flow is PEP 508–compliant and CI-friendly.
- Python 3.12 or 3.13
- git
- pip >= 24.1 (recommended)
- macOS users need conda to install
python-casacore(not required for the default build), but required to run tests.
- Components (editable) from local clones under
external/:external/xradio,external/graphviper,external/astroviper,external/toolviper
- TestVIPER dependencies from
requirements/base.txt
Components are synced by scripts/sync_components.sh and installed via requirements/main.txt using editable local paths (PEP 508–compliant).
Use conda-forge to install the python-casacore library as a dependency for xradio.
conda create --name testviper-venv python=3.13 --no-default-packages
conda activate testviper-venv
conda install -c conda-forge python-casacore
make build-mainpython3.13 -m venv venv
source venv/bin/activatemake build-mainRuns:
- Clone/update all components to
main - Install components in editable mode
- Install TestViper base dependencies
Run tests:
make test-main # Component test suites under external/<component>/tests
make test-testviper # Integration tests in tests/integrationmake build-branch REF=feature/my-branchExamples:
- Branch:
make build-branch REF=19-fix-bug-in-configuration - Tag:
make build-branch REF=v0.3.1 - Commit:
make build-branch REF=2c4b0f1
make build-refs \
XRADIO=78-io-rework \
GRAPHVIPER=v0.3.1 \
ASTROVIPER=2c4b0f1 \
TOOLVIPER=mainProvide only what you need; unspecified components default to main.
- Install PIXI:
curl -fsSL https://pixi.sh/install.sh | sh
export PATH=/user/../.pixi/bin:$PATHThe project uses PIXI for package management. All dependencies are managed through pixi.toml.
To add a new dependency:
pixi add package-nameTo remove a dependency:
pixi remove package-nameTo add a new dependency from PyPI:
pixi add package-name --pypiTo update dependencies:
pixi updateThe file pixi.toml contains the minimum dependencies to install the components from any branch. the pixi dependencies are installed from the conda-forge channel. The components are installed using pip inside a pixi environment.
The pip-branch "task" in pixi.toml allows to install the components from any branch by giving the branch name as an argument.
pixi install
pixi run pip-install main
...pixi run pytest -v tests/integration
pixi run pytest -v external/xradio/tests
...etc.Currently there is a draft implementation using Allure Reports and accessible via https://casangi.github.io/testviper/
There is another draft implementation of test aggregation using Testspace, accessible via https://casangi.testspace.com/projects/68338/spaces and https://casangi.testspace.com/spaces/311697/metrics.
- ....