6
我在一個項目中使用pylint,並有些東西打擾了我。Pylint:禁用子類的警告
例如,我創建了一個單元測試(unittest.TestCase的子類)。這個父類有很多方法,所以pylint說「R0904:太多的公共方法」。 要「解決」此警告,我禁用本地檢查。
但是我需要寫很多單元測試,並且它困擾我每次禁用localy這個檢查。
所以我正在尋找一種方法來禁用unittest.TestCase的所有子類的檢查。 在一個pylint配置文件中可能會有,但是我沒有找到任何東西。
你有什麼想法做到這一點?
非常感謝您的幫助。
希望有一個更簡單的選項,但如果不是的話......你總是可以編寫一個插件,該子插件可以用於設計檢查器(或者monkeypatches,但子類化看起來比較乾淨)。我會通過添加一個新選項'ignore-test-classes'來實現,並使用它來跳過任何從任何被忽略的類繼承的類的'max-public-methods'檢查。 (處理類檢查器的ignore-iface-methods的代碼應該是一個很好的模型。)事實上,這似乎可能具有足夠的通用性,如果你這樣做,你可能會向上遊提交它。 – abarnert 2014-09-28 21:48:00
這並不完全適合你,但是你總是可以將一個'pylintrc'放入一個包中(即任何帶有'__init __。py'的目錄),所以如果你在一個'tests'目錄下有所有的測試,例如,至少可以在項目的基礎上禁用它,即使不是全局的。 – 2014-09-29 00:10:48
感謝您的回答。 Abarnert,我會檢查如何爲此創建一個插件。我的問題不僅僅是單元測試課。例如,我使用sqlalchemy和sqlalchemy.types.TypeDecorator的子類。 我會嘗試編寫一個通用插件來添加一個選項,如disable-XXXX = unittest.TestCase,...,... – 2014-09-29 06:53:44