Używam następujących poprzez Makefiel
:pokrycie równolegle do Django testuje
NPROCS:=$(shell /usr/bin/nproc)
.PHONY: coverage-app
coverage-app:
coverage erase --rcfile=./.coveragerc-app
coverage run --parallel-mode --rcfile=./.coveragerc-app manage.py test -v 3 --parallel=$(NPROCS) app
coverage combine --rcfile=./.coveragerc-app
coverage report -m --rcfile=./.coveragerc-app
Jeżeli ustawić NPROCS
1, uzyskać oczekiwane 100% pokrycia test wszystkich plików wewnątrz app
. Jeśli jednak NPROCS
jest większa niż 1, w moim raporcie pojawia się wiele brakujących linii.
Co robię źle?
My .coveragerc-app
się następująco:
# Control coverage.py
[run]
branch = True
omit = */__init__*
*/test*.py
*/migrations/*
*/urls.py
app/admin.py
app/apps.py
source = app
parallel = true
[report]
precision = 1
show_missing = True
ignore_errors = True
exclude_lines =
pragma: no cover
raise NotImplementedError
except ImportError
def __repr__
if self\.logger\.debug
if __name__ == .__main__.:
Ja myślę, że nie masz podprocesów właściwie mierzone. Możesz sprawdzić pliki danych, które są produkowane podczas biegu. Ile dostałeś i jakie linie pokrywają? Możesz zobaczyć podsumowanie danych za pomocą: "COVERAGE_FILE = dane debugowania obszaru danych" –
@NedBatchelder Mam tylko jeden plik '.coverage.serval.TLD.12116.528573', który zawiera tylko część danych. Końcowy raport jest rzeczywiście poprawny i pasuje do danych w tym jednym pliku. Zakładam, że powinny istnieć pliki X (= NPROCS). Zastanawiam się, czy jest to plugin django, który nie działa poprawnie? ... – Sardathrion