我正在使用waf来构建和运行gtest。
如果我将所有内容都放在我的root wscript中,就像下面的内容一样。
def build(bld): #build hello world lib bld.recurse( “SRC / CPP / HW”)
#building ……
因此,为了运行单元测试,我找到了一个非常好的简单解决方案。我在waf_unit_test模块中使用了build。只需添加这样的导入......
from waflib.Tools import waf_unit_test
...而不是将值“test”的属性“features”添加到我的所有测试程序中......
bld.program( features = 'test' target = 'test_run', source = [ 'test_run.cpp' ], use = [ 'HW_static', 'GTEST_static' ], lib = [ 'pthread' ], includes = [ bld.env.LIBGTEST_INCLUDES ], )
...并删除dependsOn和cppUnitTest指令。不幸的是,我的测试应用程序的输出被抑制但是如果成功的测试可以在构建函数中添加以下回调,则获得反馈。
bld.add_post_fun(waf_unit_test.summary)
这对于gtest应用程序来说还可以,但是我需要一个更通用的解决方案来保持任务的顺序。见编辑问题。