Browse Source

local code coverage

t1m0t 3 years ago
parent
commit
5ba2c43274

+ 14 - 0
.docker/Dockerfile_base_test_image

@@ -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"]

+ 7 - 0
.docker/Dockerfile_code_coverage

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

+ 4 - 16
.docker/Dockerfile_pre_test

@@ -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"]

+ 2 - 1
.docker/Dockerfile_test

@@ -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"]

+ 10 - 1
.docker/run_local_tests.sh

@@ -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 - 0
.gitignore

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