私が書いている 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 を残しても私の環境では、テスト コードは、独自のディレクトリ内からプログラムを呼び出した場合にのみ実行されます。テスト スイートの 1 つに切り替えて、相対 PATH を使用してそれを呼び出すと、この関数を誤ってトリガーすることがなくなります。
他の誰かがこの種の規則を使用しましたか?
環境変数名間の競合を回避するための他の提案やベスト プラクティスは何ですか? テスト ハーネス機能への「非表示」アクセスを提供するには?
(また、claftで遊んでみたい人は、気軽に試してみてください。今のところかなり醜いコードで、ほとんど概念実証に過ぎません。しかし、最小限の機能しかありません。方法を独学する良い方法でもあります。 Mercurial と bitbucket を使用するには、wiki と問題追跡が、claftに関するフィードバックを投稿するのに最適な場所です)。