使用WAFF清洁时仅清洁特定目标

Ada*_*kin 5 waf

每当我将其称为“ waf clean”时,waf最终都会清除构建中的所有内容。我希望有一种方法可以告诉waf仅清理特定目标。这样,只要我想再次运行所有单元测试,就不必重建所有内容。

例如,

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

src
   -acceptanceTests
   -applicationA
      -tests
   -shared
      -tests
Run Code Online (Sandbox Code Playgroud)

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

然后,我想再次运行acceptanceTests,但是acceptanceTests都没有更改,因此waf将不会重建并运行它们。触发“清理干净”会清除applicationA,shared和acceptanceTests中的所有内容,这并不理想。相反,我希望能够运行“ waf cleanAcceptanceTests”命令,该命令仅应清除acceptanceTests目录。

neu*_*uro 0

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

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