用数值范围过滤测试

2024-06-25 23:07:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我所有的鼻子测试都是这样的:

def test_555():    chk(555); do_some_testing(...)
def test_556():    chk(556); some_more_testing()

函数将检查该测试号是否是我当前想要执行的测试号——这是我自己基于数值范围的忽略测试逻辑。此函数只引发:unittest.SkipTest()以跳过测试

我对这个设置很满意,但我想以某种方式自动装饰我的所有测试,使我自动为每个测试派生“chk(I)”检查。我看不到如何在测试期间获取当前正在执行的测试对象,也看不到如何以某种方式自动装饰所有测试

但也许有更好的办法?我的目标是能够更新:

RUN_TESTS = (590,720)

在我的源代码中,并有正确的事情发生

谢谢


Tags: 函数testdefmore方式装饰someunittest
1条回答
网友
1楼 · 发布于 2024-06-25 23:07:06

nose-parametarized是你的朋友:

from nose_parameterized import parameterized

def chk(number):
    print number

@parameterized.expand([[x, x] for x in range(100)])
def test(_, number):
    chk(number)

运行测试:

$ nosetests pr.py
pr.test_0 ... ok
pr.test_1 ... ok
...
pr.test_98 ... ok
pr.test_99 ... ok
                                   
Ran 100 tests in 0.078s

OK

选择测试:

$ nosetests pr.py:test_89 -v -s
pr.test_89 ... 89
ok

                                   
Ran 1 test in 0.002s

OK

相关问题 更多 >