我目前正在使用源代码生成工具。为确保所做的更改不会引入任何新的错误,diff
更改前后的程序输出在理论上将是一个有价值的工具。
但是,事实证明这比人们想象的要难,因为该工具import
以半随机排序的方式输出顺序无关紧要的行(如语句,函数声明等)。因此,的输出diff
杂乱无章,实际上只有行移到了同一文件中的另一个位置。
有没有办法使diff忽略这些移动,而只输出真正添加或删除的行?
也许更方便地更改您的工具以按特定的顺序(例如,词典,如果可能的话,以您的语言)生成函数并导入声明?
—
丹尼尔·贝克
@丹尼尔·贝克(Daniel Beck):请参阅下面我对吉尔(Gilles)的回答。
—
dnadlinger 2010年
这是一个古老的主题,但在下面总结了一下注释
—
2014年
diff
,由于代码中的指令顺序确实很重要,因此该工具如何能够将有效动作与无效动作分开,并且不正确的情况受到限制(导入,函数和类的声明,等)?
@Joël:答案很简单,我知道我必须测试的生成器更改不会引入任何与更改行顺序有关的错误。当然,您需要基于目标语言的解析器的工具来避免一般情况下的假阳性(或者只是生成器的全面测试套件),但这被认为是一次快速的一次性检查进行代码审查。
—
dnadlinger 2014年