GAEユニットテストフレーム:GAEUnit
最近また自分の3番目のGAEアプリを書き始めましたが、前の2回の経験を吸収して、今回はドキュメントやテストにもっと工夫します.
テストといえば、開発段階のコード走unit testが必要であるはずなので、これを見つけました:GAEUnit.
その紹介を見てみましょう.
GAEUnit is a unit test framework that helps to automate testing of your Google App Engine application. With a single configuration change (it can be completed within 30 seconds), your unit tests can be run in the real GAE app server environment using a web browser.
GAEUnit is simple. It contains only one file: gaeunit.py. Just copy that file into your application directory and add the test URL to app.yaml.
GAEUnitの使い方もとても簡単で、gaeunit.py copyはGAEプロジェクトディレクトリに、app.yamlには次のような言葉が加わっています.
ここでlogin:adminとは、このsiteのadminユーザーだけがテストを呼び出すことができることを意味します.もちろん、開発段階では、手間を省きたいなら注釈してもいいです.
次に、GAEを実行してhttp://localhost:8080/testを見ると、簡潔なユニットテストページがあります.
どうだ、クールだろ!もしあなたのGAEがすでに配置されているならば、このようにappspotサイトでテストすることができて、login:adminを加えることを忘れないでください.そうしないと、誰もがあなたのユニットのテストページを見ることができます.もしあなたが好きなら、それでもいいです.
もちろん、GAEプロジェクトディレクトリにtestディレクトリを追加し、ユニットテストを開始する必要があります.ここではunittestを使用します.簡単な例を挙げます.
[serviceTest.py]
ここにはGAEでunittestを作るだけの文章もあります(http://ihere.appspot.com/2008/12/game-unittest-above-summary.html)、よく書けましたが、まだよく研究していないので、暇があればもう一度やってみます.
テストといえば、開発段階のコード走unit testが必要であるはずなので、これを見つけました:GAEUnit.
その紹介を見てみましょう.
GAEUnit is a unit test framework that helps to automate testing of your Google App Engine application. With a single configuration change (it can be completed within 30 seconds), your unit tests can be run in the real GAE app server environment using a web browser.
GAEUnit is simple. It contains only one file: gaeunit.py. Just copy that file into your application directory and add the test URL to app.yaml.
GAEUnitの使い方もとても簡単で、gaeunit.py copyはGAEプロジェクトディレクトリに、app.yamlには次のような言葉が加わっています.
- url: /test.*
login: admin # This is important if you deploy the test directory in production!
script: gaeunit.py
ここでlogin:adminとは、このsiteのadminユーザーだけがテストを呼び出すことができることを意味します.もちろん、開発段階では、手間を省きたいなら注釈してもいいです.
次に、GAEを実行してhttp://localhost:8080/testを見ると、簡潔なユニットテストページがあります.
どうだ、クールだろ!もしあなたのGAEがすでに配置されているならば、このようにappspotサイトでテストすることができて、login:adminを加えることを忘れないでください.そうしないと、誰もがあなたのユニットのテストページを見ることができます.もしあなたが好きなら、それでもいいです.
もちろん、GAEプロジェクトディレクトリにtestディレクトリを追加し、ユニットテストを開始する必要があります.ここではunittestを使用します.簡単な例を挙げます.
[serviceTest.py]
import unittest
from models import *
import service
class TestService(unittest.TestCase):
def setUp(self):
pass
def test_saveUser(self):
# create an user model
user = User(name='Test')
# add this user model into datastore and check
service.saveUser(user)
other = service.getUserList({'name': 'Test'}).get()
self.assertEqual('Test', other.name)
# update the user model and check
other.name='ABC'
service.saveUser(other)
self.assertEquals(None, service.getUserList({'name': 'Test'}))
self.assertEquals(1, service.getUserList({'name': 'ABC'}).count())
ここにはGAEでunittestを作るだけの文章もあります(http://ihere.appspot.com/2008/12/game-unittest-above-summary.html)、よく書けましたが、まだよく研究していないので、暇があればもう一度やってみます.