我使用#define
宏来启用/禁用我的代码中的自动化测试。例如,我可以使用以下行来启用自动测试:
#define FEATURE_AUTOMATED_TEST
当我提交代码时,我希望禁用此测试,所以我只是将其注释掉:
//#define FEATURE_AUTOMATED_TEST
(通常我不会在C代码中使用C ++风格的注释,但对于这些东西来说非常方便。)
不幸的是,有时我(或其他人)意外地在SVN提交时启用了宏,需要后续的SVN提交才能解决问题。我知道我可以使用某种形式的#warning
宏来帮助防止这种情况,但我正在寻找更好的解决方案。 SVN会去的地方“你真的没有男人,你不能那样检查它,因为你已经FEATURE_AUTOMATED_TEST
启用了.Dumbass。”
有什么想法吗?我完全愿意改变启用/禁用测试部分的方式...它不必使用#define
,但它必须在编译时排除任何禁用的测试代码。
答案 0 :(得分:2)
您可以使用a subversion pre-commit hook:
grep -l '^#define.*FEATURE_AUTOMATED_TEST'
是否存在宏。如果上述命令的退出代码与0
不同,您将中止提交。