我在Jython中遇到了一个问题需要解决。我得到的功能看起来像这样:
ok = whatever1(x, ...)
self.assertTrue("whatever1 failed: "+x...(), ok)
ok = whatever2(x, ...)
self.assertTrue("whatever2 failed: "+x...(), ok)
[ many many lines ] ...
有许多测试看起来像这样,它们主要包含ok = ...测试,但也有其他一些事情要做。我知道哪些函数是可测试的,因为它们只来自一个命名空间(或者我可以留下“ok =”部分)。问题是 - 如何自动转换源,以便我只写:
ok = whatever1(x, ...) # this is transformed
ok = whatever2(x, ...) # this too
something_else(...) # this one isn't
其余是自动生成的吗?
我知道简单和非常 - 有没有更好的方法来解决这个问题? (是的,我知道 - 也许就像monad)我也在看rope
图书馆,无法决定......哪种方式最适合选择?我描述的转换是我唯一需要的转换,我不介意创建一个将包含在实际代码中的临时文件。
答案 0 :(得分:2)
您确定需要AST吗?如果唯一感兴趣的行是以“ok =”开头的行,那么对源文件进行简单的字符串处理就足够了吗?