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