在Boost.Build中禁用单元测试编译

时间:2012-02-26 13:09:40

标签: bjam boost-build

Boost.Build文档在测试方面非常简洁。

我的项目中的所有测试都是使用unit-test规则定义的。

文档中提到的唯一属性是testing.launcher,但这只能在设置为testing.launcher=true时禁用测试执行。

如何完全禁用unit-test规则的编译?我想暂时这样做,例如,通过从命令行设置属性。我找不到任何有关如何执行此操作的信息或任何其他testing.*属性的参考文档。

3 个答案:

答案 0 :(得分:1)

如果您的意思是默认禁用它们?你可以通过添加“explicit;”来做到这一点。对于每个单元测试。如果你有很多这样的目标,你可以节省一些打字并声明一个为你做的规则,再加上声明单位测试:

rule explicit-unit-test ( target : source : properties * )
{
    unit-test $(target) : $(source) : $(properties) ;
    explicit $(target) ;
}

如果你想要别的东西..我想你需要更好地解释你的问题,因为我想不出你还想要什么。

答案 1 :(得分:1)

当我阅读大部分Boost.Build文档及其代码的相关部分时,我发现没有办法临时禁用构建特定规则或目标集(例如通过匹配测试目标)用正则表达式。)

同样值得注意的是,unit-test 已弃用以支持新的测试规则:runrun-fail,{{1} },compilecompile-faillink

现在,可能,我将创建我自己的规则,就像在@ GrafikRobot的回答中一样,但是不会使目标明确,我将使规则在存在时为空某个功能

答案 2 :(得分:0)

我为此目的使用显式测试套件,如

explicit X ;
test-suite X
:
      [ run test1.cpp ]
      [ run test2.cpp ]
      [ run test3.cpp ]
      [ run test4.cpp ]
;

您需要使用

明确请求在测试套件X中执行测试
bjam X