祢占堂

はい

buildout で Pyramid のテストコマンドを作る

前回までのあらすじ

buildout を使って Pyramid の環境を構築したねじだが、朝方剥いた桃がすごい速さで変色していくのにびっくりした。

あわせて読みたいbuildout を使って Pyramid な環境を構築してみた

Pyramid でのテストの実行

チュートリアルにあるように、setup.py test とか nose でテストができる。

これを buildout 使った場合はどうやるのかと思ったら、zc.buildout.eggs に nose とか追加するのじゃなくて、pbp.recipe.noserunner というレシピがあるらしい。

というのに @aodag 先生の公開してる papyrus の buildout.cfg を見て気づきました。なのでパクります。

bin/test コマンドの作成

buildout.cfg に以下のセクションを追加します。parts への追記も忘れずに。

[test]
recipe = pbp.recipe.noserunner
eggs =
    coverage
    kusaba
defaults =
    src/kusaba
    --with-doctest
    --cover-package=kusaba
    --cover-erase
    --with-coverage

${kusaba:eggs} という変数は [kusaba] セクションに別れてないとできないっぽいです。しかし [pyramid] セクションと一緒にしないとパス通らないのよね…

ともあれ、これで bin/buildout すれば bin/test コマンドができますよ。実行するとこんな感じです。

$ bin/test
.
Name                          Stmts   Miss  Cover   Missing
-----------------------------------------------------------
kusaba                           11      7    36%   9-15
kusaba.models                    14      0   100%   
kusaba.scripts                    0      0   100%   
kusaba.scripts.initializedb      22     14    36%   19-22, 25-35
kusaba.views                     11      2    82%   15-16
-----------------------------------------------------------
TOTAL                            58     23    60%   
----------------------------------------------------------------------
Ran 1 test in 1.560s

OK

ウヒョー