Commit ce092d6e authored by Nicolas Gelot's avatar Nicolas Gelot
Browse files

Include coverage of functional tests

parent 741cc323
...@@ -3,6 +3,7 @@ image: $CI_REGISTRY_IMAGE/env:latest ...@@ -3,6 +3,7 @@ image: $CI_REGISTRY_IMAGE/env:latest
stages: stages:
- build - build
- test - test
- report
front-end: front-end:
stage: build stage: build
...@@ -27,7 +28,10 @@ unit-test: ...@@ -27,7 +28,10 @@ unit-test:
- ./manage.sh update_dev_packages - ./manage.sh update_dev_packages
script: script:
- ./manage.sh unit_tests - ./manage.sh unit_tests
coverage: '/TOTAL.*\s+(\d+%)$/' artifacts:
paths:
- coverage
expire_in: 1 hour
functional-test: functional-test:
stage: test stage: test
...@@ -42,3 +46,16 @@ functional-test: ...@@ -42,3 +46,16 @@ functional-test:
- docker exec -i spotenv ./manage.sh update_dev_packages - docker exec -i spotenv ./manage.sh update_dev_packages
script: script:
- docker exec -i spotenv ./manage.sh functional_tests - docker exec -i spotenv ./manage.sh functional_tests
artifacts:
paths:
- coverage
expire_in: 1 hour
coverage:
stage: report
script:
- ./manage.sh coverage
dependencies:
- unit-test
- functional-test
coverage: '/TOTAL.*\s+(\d+%)$/'
...@@ -6,8 +6,6 @@ EXPOSE 8888 ...@@ -6,8 +6,6 @@ EXPOSE 8888
WORKDIR /usr/local/searx WORKDIR /usr/local/searx
CMD ["python", "searx/webapp.py"] CMD ["python", "searx/webapp.py"]
RUN adduser -D -h /usr/local/searx -s /bin/sh searx searx
COPY requirements.txt ./requirements.txt COPY requirements.txt ./requirements.txt
RUN apk -U add \ RUN apk -U add \
...@@ -22,6 +20,7 @@ RUN apk -U add \ ...@@ -22,6 +20,7 @@ RUN apk -U add \
ca-certificates \ ca-certificates \
&& pip install --upgrade pip \ && pip install --upgrade pip \
&& pip install --no-cache -r requirements.txt \ && pip install --no-cache -r requirements.txt \
&& pip install --no-cache coverage \
&& apk del \ && apk del \
build-base \ build-base \
libffi-dev \ libffi-dev \
...@@ -34,10 +33,6 @@ RUN apk -U add \ ...@@ -34,10 +33,6 @@ RUN apk -U add \
COPY searx /usr/local/searx/searx COPY searx /usr/local/searx/searx
RUN chown -R searx:searx /usr/local/searx
USER searx
RUN sed -i "s/127.0.0.1/0.0.0.0/g" searx/settings.yml RUN sed -i "s/127.0.0.1/0.0.0.0/g" searx/settings.yml
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
version: '3.6'
services:
spot:
entrypoint:
- coverage
- run
- --source=searx
command:
- searx/webapp.py
volumes:
- coverage:/coverage
environment:
COVERAGE_FILE: /coverage/func
volumes:
coverage:
name: spot-coverage
...@@ -8,6 +8,7 @@ set -e ...@@ -8,6 +8,7 @@ set -e
# subshell # subshell
PYTHONPATH="$BASE_DIR" PYTHONPATH="$BASE_DIR"
SEARX_DIR="$BASE_DIR/searx" SEARX_DIR="$BASE_DIR/searx"
COV_DIR="$BASE_DIR/coverage"
ACTION="$1" ACTION="$1"
...@@ -41,12 +42,26 @@ pep8_check() { ...@@ -41,12 +42,26 @@ pep8_check() {
unit_tests() { unit_tests() {
echo '[!] Running unit tests' echo '[!] Running unit tests'
PYTHONPATH="$BASE_DIR" pytest --cov=searx "$BASE_DIR/tests/unit" mkdir -p "$COV_DIR"
chmod a+w "$COV_DIR"
PYTHONPATH="$BASE_DIR" COVERAGE_FILE="$COV_DIR"/unit pytest --cov=searx "$BASE_DIR/tests/unit"
} }
functional_tests() { functional_tests() {
echo '[!] Running unit tests' echo '[!] Running unit tests'
PYTHONPATH="$BASE_DIR" pytest "$BASE_DIR/tests/functional" mkdir -p "$COV_DIR"
chmod a+w "$COV_DIR"
PYTHONPATH="$BASE_DIR" COMPOSE_FILE=docker-compose.yml:docker-compose-coverage.yml \
pytest "$BASE_DIR/tests/functional"
docker run -itd --rm --name tmp-vol -v spot-coverage:/coverage alpine
docker cp tmp-vol:/coverage/func $COV_DIR
docker stop tmp-vol
}
coverage() {
sed -i 's!/usr/local/searx!'$BASE_DIR'!g' "$COV_DIR"/func
coverage3 combine coverage/func coverage/unit
coverage3 report
} }
tests() { tests() {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment