Djangoでテスト 第二回
テストデータの読み込みが面倒という点で、
MiCHiLUさんに教えてもらったので試してみた。
>>> from django.core import management >>> management.call_command('loaddata', 'blog/fixtures/k8w.json') Loading 'blog/fixtures/k8w' fixtures... Installing json fixture 'blog/fixtures/k8w' from absolute path. Installed 66 object(s) from 1 fixture(s)
doctestは、Pythonインタプリタの出力を張るだけでテストできますが、
インタプリタの出力が一致していないとエラーとなります。
テストデータの件数をあらかじめ知っておかないと、doctestを書けないと
いうことになってしまいます。
そこで、
>>> from django.core import management >>> management.call_command('loaddata', 'blog/fixtures/k8w.json') Loading 'blog/fixtures/k8w' fixtures... Installing json fixture 'blog/fixtures/k8w' from absolute path. Installed ... from 1 fixture(s)
とすると任意の件数に対応できるようになります。
別の方法として、verbosity=0 を指定することで、
fixtureを読み込む時に出力をさせないようにすることができます。
>>> from django.core import management >>> options = dict( verbosity = 0, ) >>> management.call_command('loaddata', 'blog/fixtures/k8w.json', **options)