装饰一个python函数以在模块为主时运行单元测试

亚历克斯·施罗耶

我想替换这个样板:

def Foo():
    pass

if __name__ == "__main__":
    run_unit_test(Foo)

有了这个:

@test_if_main
def Foo():
    pass

是否有可能?

亚历克斯·施罗耶
# utils.py
import inspect

def test_if_main(f):
    caller = inspect.stack()[1]
    mod = inspect.getmodule(caller[0])
    if mod.__name__ == "__main__":
        print('running unit tests...')
    return f
# Foo.py
from utils import test_if_main
@test_if_main
def Foo():
    print(42)

# handled by @test_if_main
# if __name__ == "__main__":
#     print("do unit tests here...")

# Bar.py
from Foo import Foo

Foo()
  • python3 Foo.py 印刷 do unit tests here...
  • python3 Bar.py 印刷 42

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单元测试只运行一个测试(python)

仅在另一个通过C#单元测试时运行

在父目录中导入另一个模块的模块的运行单元测试失败

Pytest:在测试结束时运行一个函数

让笨拙的业力运行一个单元测试

在 Python 中运行单元测试模块

通过使用装饰器和元类跳过所有单元测试,但跳过Python中的一个

单元测试Guice模块,其中一个模块安装另一模块

一个简单的单元测试,运行它时,得到错误“未找到测试”

在laravel中的测试套件中仅运行一个单元测试

与另一个函数同时运行每个 pytest 测试函数

Xcode 单元测试 - 添加一个用于所有测试类的通用函数

Jest 单元测试一个函数,该函数调用一个返回承诺的函数

开玩笑地对一个函数进行单元测试,该函数调用一个返回Promise的函数

模块的Python单元测试

运行一个单元测试时参照的assertEquals是模糊

如何使用Gradle仅运行一个单元测试类

创建记录时,运行一个函数以在另一个模块中创建记录-Odoo 13

单元测试:2分的情况在一个测试?

单元测试期间何时运行单例析构函数

Python单元测试如何测试调用另一个方法的方法

爪哇8:单元测试的方法,其返回一个函数对象

如何对一个全局函数(即angularJs中的$ rootScope.functionname)进行单元测试

为一个简单的函数编写 JEST 单元测试

ReactJS单元测试-TypeError:this.props.onChange不是一个函数

在单元测试中引用一个嵌套函数assert_ named_with()

Angular Mat对话框单元测试:This.dialogref.updatesize不是一个函数

尝试运行单元测试模块

如何对一个调用另一个返回承诺的函数进行单元测试?