2011-05-11

AttributeError: 'module' object has no attribute 'TestCase'

本日のトラブル - AttributeError: 'module' object has no attribute 'TestCase'
縦サミの@t_wadaさんのお話しを聞いて、『せめてこれからはテストを書く習慣をつけたいなあ~』と考えました。
#テスト書いてないというのはわたしだけで、同僚や職場の方がそうだということはありません、念のため....。


さて、ちょうどジョブとして仕込む予定の簡単なプログラムを、Pythonで書くつもりだったので、ここからテストの練習をしようと思いました。


http://www.python.jp/doc/2.5/lib/module-unittest.html のあたりの記事を参考に、まずはコードをCopy&Pasteして(下記の通りサンプルそのまんま)、unittestの動作を確認することにしましたが...。



import random
import unittest

class TestSequenceFunctions(unittest.TestCase):
    
    def setUp(self):
        self.seq = range(10)

    def testshuffle(self):
        # make sure the shuffled sequence does not lose any elements
        random.shuffle(self.seq)
        self.seq.sort()
        self.assertEqual(self.seq, range(10))

    def testchoice(self):
        element = random.choice(self.seq)
        self.assert_(element in self.seq)

    def testsample(self):
        self.assertRaises(ValueError, random.sample, self.seq, 20)
        for element in random.sample(self.seq, 5):
            self.assert_(element in self.seq)

if __name__ == '__main__':
    unittest.main()

実行してみると、こんなエラーが!

AttributeError: 'module' object has no attribute 'TestCase'

ええ~?と思って、pythonを対話モードで起動して、 "import unittest" とタイプしたとたんに、同様のメッセージが。


『なんじゃこりゃー』状態だったのですが、もしかしたらmoduleが無いんじゃないかと、% locate unittest.py とすると、Pythonのライブラリにはちゃんとファイルがあります。

....悩むこと5分。


『もしかして?』と思って、サンプルコードのファイル名を確認したところ、"unittest.py" になっていました。

早速、ファイル名を変更して、python test.py としたところ...。

# python test.py
...----------------------------------------------------------------------Ran 3 tests in 0.001s OK

とまあ、めでたしめでたしではありますが.....。

こんなことで大丈夫でしょうかね。何事もやってみるものですが、『OK』の文字1つ出てくれただけでも、本当に有難かったです(^^;

1 件のコメント:

  1. すみません、エラーメッセージで検索してたどりつきました。
    困っています。
    AttributeError: 'module' object has no attribute 'GARIO_PENDING'

    GISソフト(QGIS)のプラグインを読み込もうとするとこのエラーが出るのですが、何が考えられるでしょうか?
    Pythonは2.7.3です。

    返信削除