2017-01-23 3 views
2

私はshortDescription関数について知り、それを試してみることを熱望していました。Pythonユニットテスト短文解説なし

shortDescription() テストの説明を返します。説明がない場合はNoneを返します。このメソッドのデフォルトの実装は、テストメソッドのdocstringの最初の行(使用可能な場合)またはNoneを返します。

奇妙なことに、私はそれを動作させることができません。 誰かが私が間違っていることを見つけることができますか?

私のクラスはunittest.TestCaseから継承しないとさえ、それはドキュメンテーション文字列の最初の行が空である3.6

+4

docstringの最初の行に 'TEST'行を入れてみましょう:' '" "" TEST 他のもの "" "... – Bakuriu

+1

また、' test_smth() 'はあなたのクラスのメソッドですか? 'self'パラメータはどこにありますか? – nickie

+0

Betchaこれはあなたがこれらのことをした後に動作します。 – denvaar

答えて

3

def test_smth(self): 
    """ 
    TEST 
    """ 
    self.description = 'TEST!' 
    print(self.shortDescription()) 

プリントアウトPythonでNoneドキュメンテーション文字列を持っています

""" <--- this is the first line 
TEST 
""" 

最初の空白行を削除すると、必要なものが表示されます。

"""TEST 
""" 

➜ /tmp cat t.py 
import unittest 

class UT(unittest.TestCase): 
    def test_smth(self): 
     """TEST""" 
     print('shortDescription():', self.shortDescription()) 


unittest.main() 
➜ /tmp python3.6 t.py 
shortDescription(): TEST 
. 
---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 

あなたは-vコマンドラインオプションを使用してテストを実行する場合は、説明がテストメソッド名の代わりに印刷され見ることができます:

➜ /tmp python3.6 t.py -v 
test_smth (__main__.UT) 
TEST ... shortDescription(): TEST 
ok 

---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 
+0

Spot on!ありがとう – Nether

1

あなたは自分の関数の引数でselfが欠落しています。 物事の残りは行くのが良いです。 試してみてください。