2012-04-20 43 views
2

我从一个Python项目中构建了一个Debian软件包,该项目依赖于一系列Debian软件包的工作。 Python项目还包含单元和集成测试(使用py.test)。在pBuilder环境中运行Python集成测试

因为我的项目依赖于一些Debian软件包,所以我需要将这些软件包安装在测试环境中,他们应该验证我的模块与这些软件包一起工作正常(我想确保我的模块不会中断这些库的更新)。

我想把这些测试环境的配置和执行放到Makefile中。这些测试应该既可以在开发人员工作站上运行,也可以在Jenkins驱动的集成服务器上运行。

我对我的包的完整integrationtest目前的方法是:

  1. 创建pBuilder环境
  2. 安装从Debian的控制文件的依赖性为pBuilder ENV
  3. 这里面pBuilder环境推出PY。测试,还使用virtualenv/tox来测试不同的Python解释器版本
  4. 从测试环境收集测试结果(py.test可以生成很好的JUnit-like test output其中的Jenkin s很容易发布)

不幸的是我找不到任何提示如何实现这个东西 - 尤其是如何做3)。我能找到的所有文档都是关于构建软件包,而不是运行测试。

任何人都可以提供一些提示我如何建立这样的测试设置?另外,我想知道是否有意义做我想做的事情。其他人如何测试(Python)模块与其他Debian软件包的集成?

回答

5

我假设你想在构建包装时运行测试套件。

1)将check目标添加到您的包的Makefile中,该Makefile运行包含所有virtualenv/tox魔法的实际测试套件;例如: -

.PHONY: check 
check: 
    ./runtests.sh 

runtests.sh运行脚本解释器的检查,然后启动PY。测试

2)配置您的debian/rules实际运行测试

2A)如果你使用CDBS,在您的Debian的开头添加以下行/规则

DEB_MAKE_CHECK_TARGET = check 

2B)如你使用debhelper,那么dh_auto_test脚本应该为你自动运行测试(假设 a check目标在你的Makefile中)

2C)如果你有一个自定义debian/rules,运行全成后,“检查”目标打造

1

怎么办其他测试与其他Debian的 包(Python)的模块集成?

一种选择是配置一个全新的系统来在虚拟机或便宜的云服务器上运行测试。

如果您在pBuilder deadset,你可以在http://packaging.ubuntu.com/html/chroots.html

调用与 pbuilder execute

其他一些有用的技巧任意脚本

相关问题