繁体   English   中英

在pBuilder环境中运行Python集成测试

[英]Run Python integration tests inside pBuilder environment

我已经从一个Python项目中构建了一个Debian软件包,该项目依赖于一堆Debian软件包才能工作。 Python项目还包含单元测试和集成测试(使用py.test )。

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

我想将这些测试环境的配置和执行放入Makefile中。 这些测试应该在开发人员工作站和Jenkins支持的Integration Server上都可以运行。

我目前对软件包进行完整集成测试的方法是:

  1. 创建一个pBuilder环境
  2. 将Debian-controlfile中的依赖项安装到pBuilder env中
  3. 在此pBuilder环境中启动py.test,还使用virtualenv / tox测试不同的Python解释器版本
  4. 从测试环境中收集测试结果(py.test可以生成漂亮的类似于JUnit的测试输出 ,Jenkins可以轻松发布)

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

谁能给我一些提示,说明如何建立这样的测试设置? 另外,我想知道我要做的目标是否有意义。 其他人如何测试(Python)模块与其他Debian软件包的集成?

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

1)将check目标添加到程序包的Makefile中,该文件将运行您的实际测试包,包括所有virtualenv / tox魔术; 例如:

.PHONY: check
check:
    ./runtests.sh

使用runtests.sh脚本运行解释器检查,然后启动py.test

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

2a)如果使用CDBS ,则在debian / rules的开头添加以下行

DEB_MAKE_CHECK_TARGET = check

2b)如果使用debhelper ,则dh_auto_test脚本应自动为您运行测试(前提 Makefile中有check目标)

2c)如果您有自定义的debian/rules ,则在成功构建后运行“ check”目标

其他人如何测试(Python)模块与其他Debian软件包的集成?

一种选择是提供一个全新的系统,以便在虚拟机或廉价云服务器上运行测试。

如果您在pBuilder上陷入僵局,则可以使用pbuilder execute调用任意脚本

http://packaging.ubuntu.com/html/chroots.html上的其他一些有用的提示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM