local code coverage

This commit is contained in:
t1m0t 2022-02-06 17:51:04 +01:00
parent 92ec0a448f
commit 5ba2c43274
6 changed files with 38 additions and 18 deletions

View file

@ -0,0 +1,14 @@
FROM rust:1.58-buster
RUN apt update
RUN apt install -y \
libglib2.0-dev \
libgtk-3-dev \
libsoup2.4-dev \
libappindicator3-dev \
libwebkit2gtk-4.0-dev \
firefox-esr \
# for Tarpaulin code coverage
liblzma-dev binutils-dev libcurl4-openssl-dev libdw-dev libelf-dev
CMD ["exit"]

View file

@ -0,0 +1,7 @@
FROM dioxus-test-image
WORKDIR /run_test
RUN cargo install cargo-tarpaulin
RUN cargo cache -a
ENTRYPOINT [ "bash" ]

View file

@ -1,20 +1,8 @@
FROM rust:1.58-buster
FROM dioxus-base-test-image
RUN apt update
RUN apt install -y \
libglib2.0-dev \
libgtk-3-dev \
libsoup2.4-dev \
libappindicator3-dev \
libwebkit2gtk-4.0-dev \
firefox-esr
# for kcov and Tarpaulin
#liblzma-dev binutils-dev libcurl4-openssl-dev libdw-dev libelf-dev
RUN cargo install cargo-make --debug
# for test coverage
#RUN cargo install cargo-tarpaulin
# clean up a bit
RUN cargo install cargo-binstall
RUN cargo install cargo-make
RUN cargo install wasm-pack
RUN cargo install cargo-cache && cargo cache -a
CMD ["exit"]

View file

@ -1,8 +1,9 @@
FROM dioxus-base-test-image
FROM dioxus-pre-test
RUN mkdir run_test
COPY tmp /run_test
WORKDIR /run_test
RUN cargo make tests
RUN cargo cache -a
CMD ["exit"]

View file

@ -12,9 +12,18 @@ function run_script {
rsync -a --progress ../ tmp --exclude target --exclude docker
# build base image
docker build -f Dockerfile_pre_test -t dioxus-base-test-image .
docker build -f Dockerfile_base_test_image -t dioxus-base-test-image .
docker build -f Dockerfile_pre_test -t dioxus-pre-test .
# run test
docker build -f Dockerfile_test -t dioxus-test-image .
# code coverage
docker build -f Dockerfile_code_coverage -t dioxus-code-coverage .
# exec test coverage
cd .. && \
echo "rustup default nightly && cargo +nightly tarpaulin --verbose --all-features --tests --workspace --timeout 120 --out Html" | docker run -i --rm --security-opt seccomp=unconfined -v "/home/elios/project/prs/dioxus/:/run_test" dioxus-code-coverage
firefox tarpaulin-report.html
# clean up
rm -rf tmp

1
.gitignore vendored
View file

@ -8,3 +8,4 @@ Cargo.lock
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
tarpaulin-report.html