0
我使用下面的命令來運行測試:代碼的覆蓋率動態導入包/模塊
nosetests --with-coverage --cover-html --cover-package mypackage
我想覆蓋報告進行更新,即使開發者增加了新的,未經測試 ,編碼到包。
例如,假設開發人員在軟件包中添加了一個新模塊,但忘記爲其編寫測試。由於測試可能不會導入新模塊,因此代碼覆蓋可能不會反映未發現的代碼。顯然這是在代碼審查階段可以防止的事情,但更早趕上它會很棒。
我的解決方案是編寫一個簡單的測試,動態地導入頂層包下的所有模塊。我用下面的代碼片段來做到這一點:
import os
import pkgutil
for loader, name, is_pkg in pkgutil.walk_packages([pkg_dirname]):
mod = loader.find_module(name).load_module(name)
動態導入子包和子模塊像這樣沒有得到通過鼻子的代碼覆蓋率插件回升。
任何人都可以提出一個更好的方式來實現這種類型的東西?