Codecov Tutorial
Codecov is a powerful tool to calculate the code coverage from test, and it is recommend to use it with Github Actions.
To use the Codecov and Github Actions, you should prepare some test files first, and we recommend you perform the tests using the package pytest. Detailed information about the test files writing obvious exceed the content of this tutorial.
Actually, the automatic test by Github Actions only need to add a *.yaml file under the .github/workflows. A simple codecov.yaml to test GVasp is like this:
name: Codecov
on: push
jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: "3.9"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Generate lib files
run: |
python setup.py build
find ./build -iname '*.so' -exec cp {} ./gvasp/lib \;
- name: Modify config
run: |
python tests/modify_config.py
- name: Copy files
run: |
cp tests/*.xsd .
cp tests/XDATCAR .
cp tests/OUTCAR .
cp tests/CONTCAR .
cp tests/EIGENVAL .
cp tests/AECCAR* .
cp tests/CHGCAR .
cp tests/CONTCAR_dos tests/DOSCAR_dos .
- name: Run tests and collect coverage
run: |
pip install pytest
pip install pytest-cov
pytest --cov=./ --cov-report=xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
It can be simplify as the following steps:
Set up job
Checkout
Set up Python 3.9
Install dependencies
Generate lib files
Modify config
Copy files
Run tests and collect coverage
Upload coverage to Codecov
Post Set up Python 3.9
Post Checkout
Complete job
In fact, how to perform the automatic test depends on your project, for example, the generate lib files, modify config and copy files are mostly will occur for your project.
The detailed information about the arguments in *.yaml can see here.