0
私は、特にPythonとunittestについて学んでいます。Unittestのサンプルが動作しない
私は機能がテストされている次の簡単な例を追跡しようとしているは、次のとおりです。
def get_formatted_name(first, last):
"""Generate a neatly formatted name"""
full_name = first + ' ' + last
return full_name.title()
とテストコードです:
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""Tests for 'name_function.py'"""
def test_first_last_name(self):
"""Do names liike 'Janis Joplin' work """
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
unittest.main()
例によれば、これは罰金実行する必要がありますし、テストが正常に実行されたことを報告します。
私は次のエラーを取得しかし:
EE
======================================================================
ERROR: test_name_function (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'test_name_function'
======================================================================
ERROR: true (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'true'
----------------------------------------------------------------------
Ran 2 tests in 0.000s
FAILED (errors=2)
Process finished with exit code 1
残念ながら、私が間違って何が起こっているか見当がつかない!
私が次の例から完全に逃してくれてありがとう、私がそれを追加すると動作します。 – Bazman
フォローアップとして、if __name__ == '__main__':が必要な理由を尋ねることができます。私はここで答えを見た:http://stackoverflow.com/questions/419163/what-does-if-name-main-doしかし、なぜそれがここで必要なのかはまだ不明ですか?確かに私は直接テストコードを実行しているので、それはすでに主な機能ですか?実際、これがif文のコードがトリガーされる理由です。だから、何も変わらないようですね? – Bazman
これは実際には大きな問題です。しかし、私はそれに答えることができないと申し訳なく思っています。 – Jonathan