Python 检查用脚本语言编写的项目中的所有代码路径的语法正确性
我想这个问题适用于动态解释的代码 详细信息 假设我有一组数据处理项目,它们依赖于一个名为Python 检查用脚本语言编写的项目中的所有代码路径的语法正确性,python,ruby,scripting,powershell-2.0,Python,Ruby,Scripting,Powershell 2.0,我想这个问题适用于动态解释的代码 详细信息 假设我有一组数据处理项目,它们依赖于一个名为tools的通用模块。在开发过程中,我发现我想更改工具中某个函数或方法的接口 这个接口更改可能不是完全向后兼容的,它可能会破坏我的数据处理项目的一个子集 如果所有涉及的软件都必须编译,我可以简单地重新编译所有的东西,编译器会指出我必须调整调用代码以适应新签名的地方。但是,在一个被解释的情况下,如何做到这一点呢 TL;DR 一组脚本程序依赖于脚本模块。以可能不向后兼容的方式更改模块接口后,如何检查相关程序并使其
tools
的通用模块。在开发过程中,我发现我想更改工具
中某个函数或方法的接口
这个接口更改可能不是完全向后兼容的,它可能会破坏我的数据处理项目的一个子集
如果所有涉及的软件都必须编译,我可以简单地重新编译所有的东西,编译器会指出我必须调整调用代码以适应新签名的地方。但是,在一个被解释的情况下,如何做到这一点呢
TL;DR
一组脚本程序依赖于脚本模块。以可能不向后兼容的方式更改模块接口后,如何检查相关程序并使其符合新接口?最佳答案是“写测试”。对于一些代码正确性的纯粹语法检查,比如调用一个不存在的函数,如您所描述的,
pylint
可能是最好的工具。使用pip Install pylint安装它
这就是为什么要编写测试。我通常使用编译器来测试语法正确性。如何以系统的方式为脚本语言做到这一点?在ruby中,TDD是必须具备的。高测试覆盖率确保在运行测试套件时执行每一行代码。ruby中没有编译器,只有一个解析器,它只会引发诸如缺少结尾、括号或类似的问题。由于解析器不可能说出该方法是否存在(因为它可能还不存在,但将来会存在,甚至可能触发缺少逻辑的方法),所以测试是唯一的方法。