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)