用unittest从数据生成测试的模块

gentests的Python项目详细描述


使用unittest从数据生成测试的模块

安装:

使用pip安装:

pip install gentests

示例:

以下测试代码将生成10个测试:

import unittest
from gentests import gentests, vals

def my_less_than(a,b):
    '''Broken function to test'''
    return a <= b

@gentests
class TestSomething(unittest.TestCase):


    @vals([
        'val_0',
        'val_1',
        'val_2'
    ])
    def test_False(self, value):
        '''Test that fails'''
        self.assertFalse(True)

    @vals([
        'val_0',
        'val_1',
        'val_2'
    ])
    def test_True(self, value):
        '''Test that passes'''
        self.assertTrue(True)

    def name_test(original_name, left, right, result):
        '''Explicitly name our tests based on our arguments'''
        return '{0}_my_less_than_{1}_{2}_is_{3}'.format(
            original_name,
            str(left),
            str(right),
            str(result)
        )

    @vals([
        (0, 1, True),
        (0, 0, False), #Fails
        (0, 2, True),
        (2, 1, False),
    ], name=name_test) #pass optional naming function
    def test_MyLessThan(self, left, right, result):
        '''Test where some pass and some fail'''
        self.assertEqual(my_less_than(left, right), result)

if __name__ == '__main__':
    unittest.main()

产生以下输出:

FFFF......
======================================================================
FAIL: test_False_gentest_0 (test.TestSomething)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\gentests.py", line 17, in <lambda>
    return lambda other_self: base_func(other_self, *args)
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\test.py", line 19, in test_False
    self.assertFalse(True)
AssertionError: True is not false

======================================================================
FAIL: test_False_gentest_1 (test.TestSomething)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\gentests.py", line 17, in <lambda>
    return lambda other_self: base_func(other_self, *args)
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\test.py", line 19, in test_False
    self.assertFalse(True)
AssertionError: True is not false

======================================================================
FAIL: test_False_gentest_2 (test.TestSomething)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\gentests.py", line 17, in <lambda>
    return lambda other_self: base_func(other_self, *args)
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\test.py", line 19, in test_False
    self.assertFalse(True)
AssertionError: True is not false

======================================================================
FAIL: test_MyLessThan_my_less_than_0_0_is_False (test.TestSomething)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\gentests.py", line 17, in <lambda>
    return lambda other_self: base_func(other_self, *args)
  File "C:\Users\Redirection\windoj9\Documents\repos\GenTests\test.py", line 47, in test_MyLessThan
    self.assertEqual(my_less_than(left, right), result)
AssertionError: True != False

----------------------------------------------------------------------
Ran 10 tests in 0.006s

FAILED (failures=4)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javapojo到org。布森。文件,反之亦然   java突然增加了G1老一代的承诺内存,减少了Eden的大小   java为什么对多个RXJava观察对象不执行并行执行?   java中的枚举是故障安全的吗?如果是,怎么做?   java是等待字符串变为相等的正确方法   java CodeAbbey挑战14个数据输入问题?   在java中的任意位置插入。util。列表   java替换html中的值   java需要帮助破译一个小堆栈跟踪:我使用的是哪种WS?   java Guice依赖项注入器空指针异常   java如何在3D引擎中实现视图剪裁平面?   JavaEclipseRCP:操作与命令需要更新   java如何使用XPAGES DesignerFacesServlet显示泰语字母(以及另一个亚洲/阿拉伯字母)   java装饰器模式问题   java我对空间复杂性的分析正确吗?   不显示java OpenGL ES 2纹理   使用java问题中的wc命令计算行数   java为什么空指针异常取决于条件的顺序?   Java日期在同一天或同一个月   java在使用lambda表达式时在变量中存储一些值