株式会社クリアコード > ククログ

ククログ


Pikzie 0.9.4リリース

肉の日なのでPikzie 0.9.4をリリースしました。

0.9.4

今回のリリースではとくに新機能はなく、 hexacosa.net::Pikzie (unittesting extention module)で教えてもらったバグが修正されている程度です。

Pythonでコードを書く機会があるとPikzieの機能も増えると思いますが、最近はなかなかPythonを使う機会がないため新機能が増えていません。新機能追加案やそのような機能を実装したパッチはWelcomeなので、使ってみて足りていない便利そうな機能があれば教えてください。

PikzieはPython Package Indexにも登録しているため、easy_installやpipを使って簡単にインストールすることができます。

easy_installを使う場合:

% sudo easy_install pikzie

pipを使う場合:

% sudo pip install pikzie

簡単に試すことができますね。

Pikzieの提供したい機能

新機能はWelcomeなのですが、「テストを書きつづけること」に邪魔になりそうな機能は受け入れないかもしれません。邪魔になりそうな機能とは「デバッグしづらくなる機能」や「テストが読みづらくなる機能」などです。

Pythonで広く使われているであろうnoseはプラグイン機能があり、たくさんの機能を備えています。例えば、assert*だけではなく、できるだけタイピング数を減らすためにokeqといった機能も提供されています。

1
2
ok(a == b) # == assert(a == b)
eq(a, b) # == assert(a == b, "%r != %r" % (a, b))

しかし、これらは「テストを書きつづけること」の邪魔になりそうな機能だと思います。そのため、もし、Pikzieにeqokを追加してほしいという要望があった場合は断るでしょう。

okは「デバッグしづらくなる機能」だと思います。上記の例では、okが失敗したとき、abの値がなんだったのかを示してもらえません。問題を解決するためには、何が問題かを把握する必要があり、そのためには問題解決につながるエラーメッセージが非常に重要です。その情報を提供しないokを簡単に使えるようにすると、デバッグしづらいテストを書いてしまいます。

eqは「テストが読みづらくなる機能」だと思います。簡潔に書いてあるプログラムは読みやすいですが、省略した名前を使って短く書かれたプログラムは読みづらいものです。何を意図しているかが明確ではないからです。1つ省略した名前を使うと他でも省略した名前を使いたくなります。そのため、eqを簡単に使えるようにすると読みづらいテストを書いてしまいます。

注意: 名前は長ければよいというものではありません。最小限の量で必要な情報が過不足なくこめられている名前がよい名前です。そのためには、その名前が使われている文脈を意識することが重要です。いつか、名前の話も書きたいものです。

Pikzieの目指すところ

noseもPikzieもテストを書きやすくすることに重点がおかれています。 そのため、noseもPikzieもたくさんの機能を提供しています。

noseとPikzieの違いは「テストを書きつづけること」にも重点がおかれているかどうかです。Pikzieは「テストを書きつづけること」にも重点がおかれているため、それを阻害するような機能を提供していません。

機能が多いことを重視する場合はnoseを選択するのがよいでしょう。しかし、テストを書きつづけることを重視する場合はPikzieもよい選択肢になると思います。

肉の日リリース情報

Pikzie以外にも高橋メソッドなプレゼンツール in XUL リターンズがリリースされています。

高橋メソッドなプレゼンツール in XUL リターンズの新機能は明日のMozilla Japan JP 10.0でわかるでしょう。

タグ: テスト
2009-05-29

«前の記事: IPAX2009での発表資料公開 最新記事 次の記事: Windows Mobile用Fennecのビルド方法»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|