我已经用Python项目构建了一个Debian包,它依赖于一堆Debian包才能工作。Python项目还包含单元测试和集成测试(使用py.test)。
由于我的项目依赖于一些Debian包,所以我需要在测试环境中安装这些包,它们应该验证我的模块与这些包一起正确工作(我希望确保我的模块不会中断这些库的更新)。
我想将这些测试环境的配置和执行放到Makefile中。这些测试应该可以在开发人员工作站和Jenkins支持的Integration上运行。
我目前对我的包进行完整集成测试的方法是:
不幸的是,我找不到任何提示来了解这些东西--尤其是如何去做。我所能找到的所有文档只是关于构建包,而不是关于运行测试。
有人能给我一些提示,我如何建立这样的测试设置?另外,我想知道做我想做的事情是否有意义。其他人如何测试(Python)模块与其他Debian包的集成?
发布于 2012-04-24 07:54:03
我假设您希望在构建打包时运行测试套件。
1)在包的Makefile中添加一个check
目标,它运行您的实际测试套件,包括所有的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
脚本应该自动地为您运行测试(前提是生成文件中有一个check
目标)
如果您有一个自定义的debian/rules
,那么在成功构建之后运行"check“目标
发布于 2012-04-29 23:34:52
其他人如何测试(Python)模块与其他Debian包的集成?
一种选择是提供一个全新的系统来运行您的测试,例如在虚拟机或廉价的云服务器上。
如果您是pBuilder上的死集,则可以使用pbuilder execute
调用任意脚本
http://packaging.ubuntu.com/html/chroots.html上的一些其他有用的提示
https://stackoverflow.com/questions/10244633
复制相似问题