【问题标题】:GAE on linux CI serverlinux CI服务器上的GAE
【发布时间】:2012-12-12 14:17:15
【问题描述】:

各位,我们正在尝试设置 CI 测试环境来测试我们的 GAE 应用。我们的 CI 服务器在 linux 和 Jenkins 上运行。本地的nosetests 和nosegunit 工作得很好;但是,在 CI 服务器上,由于本身没有任何安装程序,GAE python 模块没有“注册”,并且鼻子或 python 无法找到。任何提示如何使此设置正常工作?

【问题讨论】:

  • 安装程序是什么意思?您使用的是devserver 还是只是单元测试python 代码?
  • 对python AppEngine代码进行单元测试。

标签: python google-app-engine jenkins continuous-integration nosetests


【解决方案1】:

如果您正在谈论单元测试,请为您的应用编写一个 setup.py 文件,其中列出了所需的包。

#!/usr/bin/env python

from distutils.core import setup

setup(name='myapp',
      version='1.0',
      description='This is a cool webapp by Syrahn.',
      author='Syrahn',
      requires=['googleappengine','nosetests',], #etc
     )

然后,作为 Jenkins 工作的一个步骤,设置一个 virtualenv,然后构建您的应用并将其安装到该 virtualenv 中。这还将安装所需的库,例如:

virtualenv myenv
myenv/bin/python setup.py sdist 
myenv/bin/pip install mypackage.tar.gz

..在此之后您可以运行单元测试:

myenv/bin/nosetests

【讨论】:

  • 这听起来相当复杂,至少与 OSX 和 Windows 相比是多么容易。
  • 您之前在 Windows 和 OSX 上运行过 Jenkins CI?
  • 无论如何,这可以确保每次运行 Jenkins 作业时,它都会对您的应用进行全新安装,从而防止由于遗留文件而导致的部署问题。了解您的应用程序所依赖的包总是很好。
猜你喜欢
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多