testability-explorer是一个测量java程序单元测试难度的工具。对于Python有没有这样的工具?
答案 0 :(得分:2)
由于Python是一种动态语言,“检查”字节码可能几乎没有任何用处。 Python程序可以使用exec
,execfile()
和__import__()
来“动态”引入代码,从而破坏字节码分析。
非Mockable总递归循环复杂度。假设字节码实际上是所有正在执行的代码,则可以计算总递归循环复杂度。然而,不可模拟的想法不适用于Python。 Python具有猴子修补功能,因此很容易在Python中模拟几乎任何东西。
假设涉及exec
,execfile()
和__import__()
操作意味着计算实际总圈复杂度的唯一方法是分析加执行的组合。
全球可变状态。有模块全局变量加上适当的global
全局变量。模块全局变量是“自由变量”,可以通过检查字节码找到。 global
全局变量都专门用global
标记,并且可以在源代码中找到,就像字节代码一样容易。
得墨忒耳定律。 很有趣,可以通过检查字节码找到。但是,上述警告适用。假设没有exec
,execfile()
或__import__()
操作,它将非常有用。
由于testability资源管理器中的大多数分析都不能轻易应用于Python,因此人们不会花费大量时间来编写类似的工具也就不足为奇了。