Python スクリプトに障害を挿入する適切な方法はありますか? ソースコードに次のようなものをまき散らすことは避けたい:
failure_ABC = True
failure_XYZ = True
def inject_failure_ABC():
raise Exception('ha! a fake error')
def inject_failure_XYZ():
# delete some critical file
pass
# some real code
if failure_ABC:
inject_failure_ABC()
# some more real code
if failure_XYZ:
inject_failure_XYZ()
# even more real code
編集: 私は次のアイデアを持っています:特別に細工されたコメントとして「失敗ポイント」を挿入します。Python インタープリターの前に呼び出される単純なパーサーを作成し、実際の失敗コードを使用して実際にインストルメント化された Python スクリプトを生成します。例えば:
#!/usr/bin/parser_script_producing_actual_code_and_calls python
# some real code
# FAIL_123
if foo():
# FAIL_ABC
execute_some_real_code()
else:
# FAIL_XYZ
execute_some_other_real_code()
で始まるものFAIL_
はすべてスクリプトによって障害ポイントと見なされ、構成ファイルに応じて障害が有効/無効になります。どう思いますか?