我有沿的線條抽象基類:排除abstractproperties報告
class MyAbstractClass(object):
__metaclass__ = ABCMeta
@abstractproperty
def myproperty(self): pass
但是當我運行nosetests(該報道)在我的項目,它抱怨該財產的防線是未經測試。它不能實際上進行測試(據我所知)爲抽象類會導致被引發異常的實例..
有什麼解決方法嗎,或者我只是不得不接受< 100%的測試覆蓋率?
當然,我可以刪除ABCMeta
使用和簡單的讓基類提高NotImpementedError
,但我更喜歡前一種方法。
我最終發現了關於IRC上的#pragma:no cover的問題,並在內聯中進行了討論。我不喜歡在抽象屬性中實現一個實現(即使它只是'提升NotImplementedError',因爲它似乎擊敗了目的)。 – 2012-02-09 20:50:32
等待:您可以在每個抽象屬性上放置「#pragma:no cover」評論,但是您將身體從pass改爲「raise NotImplementedError」還不行嗎?對於他自己,我猜...很高興你找到了你喜歡的解決方案。 – 2012-02-09 21:06:46
我絕對同意這不是一個最佳的解決方案,但我更喜歡使用這樣的內聯指令來改變抽象基類模塊的預期用途和好處。 – 2012-02-09 21:53:00