MS RFC 129:更新msautotest以使用Pytest¶
- 日期
2020-01-29
- 作者
甚至鲁奥
- 联系方式
- 状态
采用
- 最后更新
2020-01-29
- 版本
MapServer 7.6版
理论基础¶
MapServer使用了一个特别的Python测试基础设施,类似于GDAL在GDAL 2.3之前的使用(从gdal2.4开始,pytest已经被采用)
虽然它是全功能的,但它是非标准的。使用标准测试框架可以让开发人员更加熟悉msautotest/mspython下的测试,增强功能,减少样板文件,因为可以使用断言,而不是临时的post_reason()/return'fail'当前组合。
Pytest提供了许多其他特性:
更好的输出
能够基于表达式运行测试的子集。例如,“pytest-k wfs”运行所有以wfs的名称包含wfs的测试。
跳过测试、预期失败等的标准解决方案。
使用文档添加自定义选项
建议的解决方案¶
msautotest/mspython下的测试被修改为与pytest兼容:方法的前缀是 test_
,临时post_reason()/返回“fail”替换为simple assert
声明
msautotest/pymod/mstestlib.py是运行基于映射文件的测试的主力,修改为使用pytest基础结构
不会修改mapscript/Python/tests下的Python mapscript测试。他们用 Python unittest
模块,可以透明地与pytest一起使用。
现在可以跑了 pytest
从msautotest运行所有测试。或者 pytest misc renderers
在这些目录中运行测试。
向后兼容性问题¶
用户没有。
未更改的内容:
测试映射文件的语法没有更改
wxs/、gdal/等子目录中的当前run-test.py启动程序脚本将被保留,并且是pytest上的包装脚本。
一些变化:
必须安装pytest:msautotest中的“pip install-r requirements.txt”/
选项中的一些更改:strict、valgrind和run_-asan选项现在以双连字符作为前缀
安全影响¶
没有
MapScript含义¶
没有
文件需求¶
https://mapserver.org/development/tests/autotest.html will be updated
票证ID和参考号¶
拉取请求可从以下网址获得:https://github.com/mapserver/mapserver/Pull/5984
投票历史¶
由PSC成员SethG,evener,JeffM,SteveL,JukkaR,JeromeB,StephanS,TomK+1采纳