在我正在编写的一些 Python 中(命令行和过滤器测试工具:claft)我想要一种简单的方法来调用内置测试套件(doctest),我决定如下:
if 'DOCTEST' in os.environ and os.environ['DOCTEST']==sys.argv[0]:
_runDocTests()
sys.exit()
因此,如果为其他程序设置了 DOCTEST 变量,我将忽略它。事实上,我对此的测试只是: DOCTEST=./claft ./claft 或者如果我想详细一点,我可以使用: DOCTEST=./claft VERBOSE=1 ./claft 所以即使我离开 DOCTEST=./claft我的环境只有当我从它自己的目录中调用我的程序时,测试代码才会运行。如果我切换到我的一个测试套件并使用相对 PATH 调用它,那么我可以避免无意中触发此功能。
有没有其他人使用过这种约定?
避免环境变量名称之间冲突的其他建议或最佳实践是什么?提供对测试工具功能的“隐藏”访问?
(另外,如果有人想玩claft ,请随意试一试。目前它的代码非常丑陋,几乎不能作为概念证明。但它的功能极少。这也是自学如何的好方法使用 Mercurial 和 bitbucket。wiki 和问题跟踪是发布有关craft的反馈的最佳场所)。