La necesidad de realizar una única forma de realización, pero no admite el ddt uso, el método de visualización no encontrado `AttributeError: tipo de objeto 'xxx' ( Clase) no tiene atributo 'xxx' (Método)
Ver ddt fuente, visto en el uso de paso de parámetros ddt nombres de los métodos redefinirán la definición del formato: fuente nombre del método + en los datos de referencia, por lo que cuando se añade a cambiar el nombre del nombre de método pasado que puede lograrse.
# test_xxx.py
import unittest
import ddt
@ddt.ddt
class MyTest01(unittest.TestCase):
# @ddt.data(["a1","a2"],["b1","b2"])
# def dataget(self,p1,p2):
# print("data:{}-{}".format(p1,p2))
@ddt.data(["a5","a2"],["b1","b2"])
@ddt.unpack
def test_02_aa(self,p1,p2):
print("test02: {}-{}".format(p1,p2))
def test_01_aa(self):
print("test01")
def test_03_aa(self):
print("test03")
def mySuitePrefixAdd(MyClass,cases):
'''
根据前缀添加测试用例-可用于ddt数据用例
:param MyClass:
:param cases:
:return:
'''
test_list = []
testdict = MyClass.__dict__
if isinstance(cases,str):
cases = [cases]
for case in cases:
tmp_cases = filter(lambda cs:cs.startswith(case) and callable(getattr(MyClass,cs)),testdict)
for tmp_case in tmp_cases:
test_list.append(MyClass(tmp_case))
suite = unittest.TestSuite()
suite.addTests(test_list)
return suite
if __name__ == "__main__":
runner = unittest.TextTestRunner()
runner.run(mySuitePrefixAdd(MyTest01,"test_02_aa"))
PyCharm alcanzar los casos de ejecución de selección derecha, directorio de instalación: ayudantes / PyCharm / _xxxx_unittest_runner.py objetivos parámetros de análisis analíticos, se puede lograr