Boost.Build文档在测试方面非常简洁。
我的项目中的所有测试都是使用unit-test
规则定义的。
文档中提到的唯一属性是testing.launcher
,但这只能在设置为testing.launcher=true
时禁用测试执行。
如何完全禁用unit-test
规则的编译?我想暂时这样做,例如,通过从命令行设置属性。我找不到任何有关如何执行此操作的信息或任何其他testing.*
属性的参考文档。
答案 0 :(得分:1)
如果您的意思是默认禁用它们?你可以通过添加“explicit;”来做到这一点。对于每个单元测试。如果你有很多这样的目标,你可以节省一些打字并声明一个为你做的规则,再加上声明单位测试:
rule explicit-unit-test ( target : source : properties * )
{
unit-test $(target) : $(source) : $(properties) ;
explicit $(target) ;
}
如果你想要别的东西..我想你需要更好地解释你的问题,因为我想不出你还想要什么。
答案 1 :(得分:1)
当我阅读大部分Boost.Build文档及其代码的相关部分时,我发现没有办法临时禁用构建特定规则或目标集(例如通过匹配测试目标)用正则表达式。)
同样值得注意的是,unit-test
已弃用以支持新的测试规则:run
,run-fail
,{{1} },compile
,compile-fail
,link
。
现在,可能,我将创建我自己的规则,就像在@ GrafikRobot的回答中一样,但是不会使目标明确,我将使规则在存在时为空某个功能。
答案 2 :(得分:0)
我为此目的使用显式测试套件,如
explicit X ;
test-suite X
:
[ run test1.cpp ]
[ run test2.cpp ]
[ run test3.cpp ]
[ run test4.cpp ]
;
您需要使用
明确请求在测试套件X中执行测试bjam X