使用waf clean时,仅清洁特定目标

时间:2014-02-18 23:55:38

标签: waf

每当我打电话给'waf clean'时,waf最终都会从构建中清除所有内容。我想有办法告诉waf只清理特定的目标。这样,每当我想再次运行所有单元测试时,我都不必重建所有内容。

例如,

如果我有以下文件夹结构:

src
   -acceptanceTests
   -applicationA
      -tests
   -shared
      -tests

运行waf时,将构建applicationA并运行其所有测试。之后我运行了AcceptTests,它对applicationA进行了一些更高级别的测试。然后我去更改applicationA中的一些代码并进行重新编译。

然后我想再次运行acceptanceTests,但是没有一个AcceptTests已经改变,所以waf不会重建并运行它们。触发'waf clean'会清除applicationA,shared和acceptanceTests中的所有内容,这些内容并不理想。相反,我希望能够运行'waf cleanAcceptanceTests'命令,该命令应该只清理acceptanceTests目录。

1 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一目标:

  • 添加一些特定的clean_acceptance_tests上下文来处理它。
  • 添加一个选项以强制执行验收测试(--force-acceptance-test)。您可以使用基于规则的任务生成器的'always = force_acceptance_test'属性,或使用waflib.Task.always_run任务装饰器将事物添加到您自己的任务生成器。