ハードウェアのテストに使用する一連のノーズ テストがあります。たとえば、次のテストは、システムの各モードのアラームのテストに関するものです。
import target
modes = ("start","stop","restart","stage1","stage2")
max_alarm_time = 10
# generate tests for testing each mode
def test_generator():
for m in modes:
yield check_alarm, m, max_alarm_time
# test alarm for a mode
def check_alarm(m, max_alarm_time):
target.set_mode(m)
assert target.alarm() < max_alarm_time
私のテストのほとんどは、システム上のすべての特定の機能をテストしているこの外観を持っていmodes
ます。
同じテスト セットを使用して、2 つの追加モードを持つ新しいハードウェアをテストしたいと考えています。
modes = ("start","stop","restart","stage1","stage2","stage3","stage4")
もちろん、古いハードウェアでもテストが機能することを望んでいます。自動テストを実行するときは、テスト環境用に、接続しているハードウェアをハードコードする必要があります。
これを行う最善の方法は、次のように paramaters.py モジュールを作成することだと思います。
def init(hardware):
global max_alarm_time
global modes
max_alarm_time = 10
if hardware == "old":
modes = ("start","stop","restart","stage1","stage2")
elif hardware == "new":
modes = ("start","stop","restart","stage1","stage2","stage3","stage4")
test_alarms.py を使用すると、代わりに次のようになります。
import target
import parameters
# generate tests for testing each mode
def test_generator():
for m in parameters.modes:
yield check_alarm, m, parameters.max_alarm_time
# test alarm for a mode
def check_alarm(m, max_alarm_time):
target.set_mode(m)
assert target.alarm() < max_alarm_time
次に、主に次のことを行います。
import nose
import parameters
parameters.init("new")
nose.main()
あなたの意見では、これは有効なアプローチですか?