MS RFC 129:更新msautotest以使用Pytest¶
- 日期
2020-01-29
- 作者
甚至鲁奥
- 联系
- 状态
采用
- 最后更新
2020-01-29
- 版本
MapServer 7.6版
概述¶
本RFC建议使用 Pytest 框架,以替换其msautotest回归测试套件的当前特定Python测试基础结构。
理论基础¶
MapServer使用了一个特别的Python测试基础设施,类似于GDAL在GDAL 2.3之前的使用(从gdal2.4开始,pytest已经被采用)
虽然它是全功能的,但它是非标准的。使用标准测试框架可以让开发人员更加熟悉msautotest/mspython下的测试,增强功能,减少样板文件,因为可以使用断言,而不是临时的post_reason()/return'fail'当前组合。
Pytest提供了许多其他特性:
更好的输出
能够基于表达式运行测试的子集。例如,“pytest-k wfs”运行所有以wfs的名称包含wfs的测试。
跳过测试、预期失败等的标准解决方案。
使用文档添加自定义选项
建议的解决方案¶
修改msautest/mspython下的测试以与pytest兼容:方法的前缀为 test_ ,adhoc post_ason()/返回‘FAIL’替换为SIMPLE assert 报表
msautotest/pymod/mstestlib.py是运行基于映射文件的测试的主力,修改为使用pytest基础结构
不会修改mapscript/python/test下的PythonMapScript测试。他们使用的是Python unittest 模块,可以与pytest一起透明地使用。
现在,只需运行即可 pytest 从msautest运行所有测试。或 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和参考号¶
投票历史¶
由PSC成员SethG,evener,JeffM,SteveL,JukkaR,JeromeB,StephanS,TomK+1采纳