`
heartsong
  • 浏览: 11562 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

GAE单元测试框架:GAEUnit

阅读更多

    最近又开始在写自己的第三个GAE应用了,吸取前两次的经验,这次在文档和测试上要多用点功夫了。

    说到测试,开发阶段的代码跑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,就会发现有一个很简洁的单元测试页面了。

gaeunit.PNG

    怎么样,很cool吧!如果你的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),写的很不错,但我还没有仔细研究,有空再试试。

分享到:
评论

相关推荐

    GAE之webapp框架

    ### GAE之webapp框架详解 #### 一、引言 在Google App Engine (GAE) 平台上进行Web应用开发时,选择合适的框架对于提高开发效率至关重要。其中,`webapp` 框架因其简洁高效而备受开发者青睐。本篇文章将详细介绍`...

    gae_clouddrive:Google App Engine (GAE) 上的 Cloud Drive 应用程序

    4. **测试文件** - 可能有单元测试或集成测试,用于确保代码的正确性。 5. **读我(README)** - 提供有关如何设置、运行和部署应用程序的说明。 **集成GAE和GCS的关键知识点包括:** 1. **Google Cloud Storage ...

    GAE_Django17:使用 Python 2.7、Django 1.7、MySQL 测试 Google App Engine

    GAE_Django17 使用 Python 2.7、Django 1.7、MySQL 的 Google App Engine 这个应用程序在我自己的个人 GAE 项目上运行和部署。 它使用 Django 1.7 的 zip 版本。 托管 确保安装了 SASS。 SASS 文件从 sass/ 编译...

    基于GAE的Demo

    【基于GAE的Demo】是一个使用Eclipse集成开发环境构建的项目,主要展示了如何在Google App Engine(GAE)平台上整合Struts2、Spring和Tiles框架。GAE是Google提供的一个云计算平台,允许开发者在Google的基础设施上...

    GAE框架下使用Timer_框架模块

    - **任务执行**:GAE会自动处理任务的执行,当任务到达执行时间时,它会调用我们之前定义的任务处理逻辑。 5. **使用示例** ```java public class TimerTask implements Task { @Override public Map, List...

    spring+gae

    7. **测试**:Spring Test模块与Mockito等工具结合,可以在GAE的模拟环境中进行单元测试和集成测试。 8. **配置**:正确配置`web.xml`和`appengine-web.xml`文件,以确保Spring应用在GAE上的正常启动和运行。 文件...

    gae-loadtest:用于重负载测试的 Google App Engine 示例

    Google App Engine 简单示例用于通过加载测试 Google App Engine 如何使用 1-在本地运行 编译项目: $ mvn clean install 在本地运行 $ mvn appengine:devserver 打开浏览器访问 (可选)在 Eclipse 中创建要...

    gae报错:javax.swing.tree.TreeNode is a restricted class的解决办法

    3. **本地开发模式**:在本地开发环境中进行测试,可以使用更宽松的环境,比如使用AppEngine SDK的本地服务器,这样可以避免因GAE限制带来的问题,但部署到生产环境时仍需确保遵循GAE的规则。 4. **理解GAE限制**:...

    flask-gae_runtools:用于使用应用程序引擎 SDK 的烧瓶扩展

    烧瓶gae_runtools 用于使用 App Engine sdk 的 Flask 扩展。 使用 pip 安装 pip install git+https://github.com/gregorynicholas/flask-gae_runtools.git#egg=flask_gae_runtools==1.0.0

    小学期GAE项目 python+Django框架实现的博客

    【标题】:“小学期GAE项目 python+Django框架实现的博客” 【描述】:“小学期的项目,一组人用了三周连学习再开发,文档齐全,适合对GAE感兴趣的人入门使用” 这个项目是一个教育实践项目,目标是构建一个基于...

    miniStruts 适合GAE(Google app engine)的小型框架(Struts 1.x的克隆)

    1. **Google App Engine (GAE)**:GAE 是 Google 提供的云平台,用于部署和运行 Web 应用程序。它提供了一整套服务,如数据存储、任务队列、邮件服务等,开发者无需管理服务器硬件。 2. **Struts 1.x**:Struts 是...

    GAE blog安装

    3. **语言和框架**:GAE支持多种编程语言,如Python、Java、Go等。由于没有明确指出使用的语言,我们可以假设这是基于其中一种语言的博客应用。通常,Python博客应用可能会使用Django或Flask框架,而Java可能使用...

    gae_in_pytorch-master_GAE_

    在PyTorch框架下实现GAE,首先需要理解PyTorch的基本操作,如张量运算、自动梯度计算以及优化器的使用。GAE的核心是构建图卷积网络(Graph Convolutional Network, GCN)作为编码器,将图的节点特征转换为低维向量,...

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    【标题】"gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_" 提供的信息表明,这是一个使用PyTorch实现的图自编码器(Graph Autoencoder, GAE)项目,其核心是将自编码器的概念应用于图数据。...

    如何在GAE中轻松使用Django框架

    标题中的“如何在GAE中轻松使用Django框架”表明我们即将探讨的是如何在Google App Engine (GAE) 平台上有效地部署和运行Django Web应用程序。Django是一个流行的Python Web框架,它提供了诸如数据库管理、用户认证...

    基于GAE平台与GWT框架的Android技术应用研究.pdf

    【基于GAE平台与GWT框架的Android技术应用研究】 本文主要探讨了如何结合Google App Engine (GAE) 平台和Google Web Toolkit (GWT) 框架,在Android客户端进行应用开发。Google App Engine是一种云计算服务平台,...

    gwt-gae-channel:自动从code.google.compgwt-gae-channel导出

    2. **Google App Engine (GAE)**:GAE是Google提供的一个云计算平台,允许开发者构建、部署和运行web应用。它提供了诸如数据库存储、负载均衡和自动扩展等服务。 3. **App Engine Channel API**:这是GAE提供的一项...

    ndb-gae-admin:Google App Engine管理框架

    【标题】"ndb-gae-admin:Google App Engine管理框架"是针对Google App Engine平台的一个重要工具,旨在提供一个高效且便捷的管理环境。这个框架主要用于处理和管理Google App Engine中的数据存储,尤其是与Non-...

    GAE使用规则

    GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则

Global site tag (gtag.js) - Google Analytics