除錯器和 PyCharm¶
(或其他 IDE)
在 TDD 中,使用者當然想除錯測試。Python 中的除錯器大多使用 sys.settrace 函式存取情境。Coverage 使用相同的技術來存取已執行的程式碼行。Coverage 與其他同時執行的追蹤器搭配使用並不理想。這會呈現 PyCharm 無論使用者做什麼都不會觸及中斷點,或遇到類似錯誤的情況
PYDEV DEBUGGER WARNING:
sys.settrace() should not be used when the debugger is being used.
This may cause the debugger to stop working correctly.
由於在 pytest.ini 檔案中採用 Coverage 配置屬於常見做法,而 pytest 不支援 removeopts 或類似的指令,因此 –no-cov 標幟可以完全停用 Coverage。
在報告部分,螢幕上會顯示一則警告訊息
Coverage disabled via --no-cov switch!