Skip to content

Nobody2019/nobody

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nobody

otest

otest 用于面向对象的单元测试,状态驱动测试,自动跟踪状态以便灵活清理环境,用于取代传统的setup 和 teardown模式

from nobody.otest import TestStatus, require_status, test


class BaseStatus(TestStatus):
    def _set_value(self, value, *args, **kwargs):
        result = kwargs.get('result')
        result.logger.info(f'{self.__class__.__name__} {value}')


class Status1(BaseStatus):
    """"""


class Status2(BaseStatus):
    """"""
    default = 'a'


class Test1:
    @require_status(Status1)
    @require_status(Status2, 'b')
    def test(self, result, *args, **kwargs):
        result.logger.info('Test1.test')


test(Test1())

输出:

[2020-11-30 01:37:22 otest:164] [DEBUG] 开始测试:Test1, test
[2020-11-30 01:37:22 otest:170] [DEBUG] 执行测试:Test1, test
[2020-11-30 01:37:22 otest:182] [DEBUG] 设置状态:Status1 -> None
[2020-11-30 01:37:22 objects:18] [INFO] Status1 None
[2020-11-30 01:37:22 otest:182] [DEBUG] 设置状态:Status2 -> b
[2020-11-30 01:37:22 objects:18] [INFO] Status2 b
[2020-11-30 01:37:22 otest:102] [INFO] 执行测试逻辑:Test1, test
[2020-11-30 01:37:22 objects:34] [INFO] Test1.test
[2020-11-30 01:37:22 otest:63] [DEBUG] 恢复状态:Status2 -> a
[2020-11-30 01:37:22 objects:18] [INFO] Status2 a
[2020-11-30 01:37:22 otest:202] [DEBUG] 完成测试:Test1, test

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages