在我当前的项目中,我有500个测试文件(UnitTest框架)。我们已经决定将它们从使用setUpClass / tearDownClass更改为setUpModule / tearDownModule。他们看起来像这样
from tests.basetestcase import BaseTestCase
from tests.state_reproductor import StateReproductor
import os
import time
class Testopen(BaseTestCase):
PRND_PATH = "PRND"
@classmethod
def setUpClass(cls):
cls.reproduceState()
super().setUpConnection()
cls.waitForNode(cls.PRND_PATH, 3)
@classmethod
def tearDownClass(cls):
cls.reproductor.restore_all_modified_values()
@classmethod
def reproduceState(cls):
cls.reproductor = StateReproductor()
cls.reproductor.process_include("startupSequence")
cls.reproductor.process_include("startupState_01")
cls.reproductor.send_signal("Status","SCORES")
cls.reproductor.process_include("start")
def test_template(self):
pass
像这样
from tests.basetestcase import BaseTestCase
from tests.state_reproductor import StateReproductor
import os
import time
import unittest
reproductor = None
def setUpModule():
global reproductor
reproductor = StateReproductor()
reproductor.process_include("startupSequence")
reproductor.process_include("startupState_01")
reproductor.send_signal("Status","SCORES")
reproductor.process_include("startETM")
def teartDownModule():
global reproductor
del reproductor
reproductor = None
@unittest.skipIf(BaseTestCase.ACTIVE==False, 'Not active')
class Testopen_ETM(BaseTestCase):
PRND_PATH = "PRND"
@classmethod
def setUpClass(cls):
super().setUpTecoConnection()
cls.waitForNode(cls.PRND_PATH, 3)
@classmethod
def tearDownClass(cls):
global reproductor
reproductor.restore_all_modified_values()
def test_template(self):
pass
现在,我只是简单地逐行将每个文件读入内存,确定功能的开始并进行修改。或复制其内容以在第二次解析期间将其注入到其他位置。
我觉得它呆板又粗糙,不太好看/漂亮。 AWK或其他控制台工具将面临类似的问题(逐行解析)。
Python.AST MAY似乎是用于这种工作的工具。
您打算使用什么来执行此转换?