Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查用脚本语言编写的项目中的所有代码路径的语法正确性_Python_Ruby_Scripting_Powershell 2.0 - Fatal编程技术网

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中没有编译器,只有一个解析器,它只会引发诸如缺少结尾、括号或类似的问题。由于解析器不可能说出该方法是否存在(因为它可能还不存在,但将来会存在,甚至可能触发缺少逻辑的方法),所以测试是唯一的方法。