2017-02-20 26 views
0

我需要重构并分解属于其他人的非常大的插件。我绝对不能做的一件事是改变现有的任务图。我正在尝试添加基线单元测试,现在我可以使用它来验证当我将其分开时,我不会更改任何内容。现在计划A是添加插件任务树并从testkit测试中拉出一棵树,将任务树与期望值进行比较。问题是其中一个任务树看起来像这样验证gradle任务图

:buildDocsHtml 
+--- :installBuildRequirements 
| \--- :installSetupRequirements 
|   \--- :installLinks 
|    \--- :createVirtualEnvironment 
|     \--- :pinRequirements 
\--- :installProject 
    \--- :installTestRequirements 
      \--- :installPythonRequirements 
       \--- :installBuildRequirements 
        \--- :installSetupRequirements 
         \--- :installLinks 
           \--- :createVirtualEnvironment 
            \--- :pinRequirements 

这将是一个噩梦,试图比较作为一个字符串。有没有更简单的方法来解决这个问题?

回答

1

你能够适应source code for the task tree plugin产生的格式是版本比较

+0

我认为更好。但问题是插件实际上并没有渲染树。树渲染是由一个内部gradle类完成的,他不应该先打电话。看看这个班级,在我看来,它就像是一个更大的系统的一部分。如果可以,我宁愿远离它。但是,如果没有其他方式,那我最终会做 – scphantm

+0

还有[gradle VisTEG插件](https://github.com/mmalohlava/gradle-visteg)。也许你可以比较它产生的'.dot'文件? –