Aşağıdaki gibi çalıştırırsanız aynı sorunu alır mısınız? --noreload
olmadan
coverage run manage.py runserver --noreload
, başka süreç perde arkasında başlatılır. Bir işlem sunucuyu çalıştırır, diğeri kod değişikliklerini arar ve değişiklik yapıldığında sunucuyu yeniden başlatır. Şansınız, kapsama alanından ziyade izleme süreci üzerinde kapsama alanı yapıyorsunuz.
django/core/management/commands/runserver.py
ve django/utils/autoreload.py
'a bakın.
Güncelleme
: Sonra, kapsama komutu ran neler olduğunu bakmak için
ps
ve
lsof
kullandı.
ps output:
UID PID PPID C STIME TTY TIME CMD
vinay 12081 2098 0 16:37 pts/0 00:00:00 /home/vinay/.virtualenvs/watfest/bin/python /home/vinay/.virtualenvs/watfest/bin/coverage run manage.py runserver
vinay 12082 12081 2 16:37 pts/0 00:00:01 /home/vinay/.virtualenvs/watfest/bin/python manage.py runserver
lsof output:
python 12082 vinay 5u IPv4 48294 0t0 TCP localhost:8000 (LISTEN)
IOW, hatta herhangi bir yüklemeden önce iki süreç vardır ve TCP bağlantı noktasında dinleme bir kapsama üzerinde çalıştığı biri değil: İşte gözlenen budur.
Burada --noreload
göremediğimiz ne: kapsama --noreload
durumda işe yaramaz neden
ps output:
UID PID PPID C STIME TTY TIME CMD
vinay 12140 2098 5 16:44 pts/0 00:00:00 /home/vinay/.virtualenvs/watfest/bin/python /home/vinay/.virtualenvs/watfest/bin/coverage run manage.py runserver --noreload
lsof output:
coverage 12140 vinay 4u IPv4 51995 0t0 TCP localhost:8000 (LISTEN)
Yani belli değil.
festival/__init__ 8 7 13%
manage 9 4 56%
settings 33 1 97%
cevabımı güncelleme: Aşağıdaki ekstresi ile gösterildiği gibi
--noreload
ile benim çok kısa testte, benim bakış kod kapsama aldık. –