casos unittest utilizan DDT sola ejecución

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

Supongo que te gusta

Origin www.cnblogs.com/wanderingfish/p/12556141.html
Recomendado
Clasificación