それなりブログ

とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など

[Django] テストケース名をTypoしてハマる

Djangoのテストを実行して、こういうエラーが出たり..

Traceback (most recent call last):
  (..中略..)
  File "/xxx/xxx/lib/python2.7/unittest/case.py", line 188, in __init__
    testMethod = getattr(self, methodName)
TypeError: getattr(): attribute name must be string

または、こういうエラーが出たら..

Traceback (most recent call last):
  (..中略..)
  File "/xxx/xxx/lib/python2.7/unittest/case.py", line 191, in __init__
    (self.__class__, methodName))
ValueError: no such test method in <class 'someapp.tests.test_forms.HogeForm'>: runTest

とりあえずは、テストケースのクラス名が間違ってないか、
確認すると良いです

自分の場合は、テストケースの名前を、
テスト対象の HogeForm にしてしまって、エラーになっていました

from django.test import TestCase
from someapp.forms import HogeForm

class HogeForm(TestCase): # HogeFormTest と書くつもりだった
  def test_success(self):
    form = HogeForm()

全然わからなくて、ウン十分ハマった!!!!


2 Responses to “[Django] テストケース名をTypoしてハマる”

  • hirokiky より:

    pylintを使えば、クラスや関数が再定義されている場合に::

    E: … HogeForm: class already defined line XX

    とエラーがでて再定義されてることが分かります。
    バグの発見に役立つと思います。

  • kjirou より:

    とりあえず入れて使ってみました
    困ったら pylint -r n target.py してみようと思います
    その時に、思い出せるかが微妙ですが..

    ありがとうっした!


コメントを残す

メールアドレスが公開されることはありません。

Categories

Archives