按数字范围过滤 nosetests
Filtering nosetests by numeric range
我所有的鼻子测试都是以下形式:
def test_555(): chk(555); do_some_testing(...)
def test_556(): chk(556); some_more_testing()
chk() 函数将检查该测试编号是否是我当前想要执行的编号——这是我自己基于数值范围的忽略测试逻辑。这个函数只是引发:unittest.SkipTest() 跳过测试。
我对这个设置很满意,但我想以某种方式自动装饰我的所有测试,从而自动为每个测试派生 'chk(i)' 检查。我看不到如何在测试本身期间获取当前正在执行的测试对象,也看不到如何以某种方式自动装饰所有测试。
但也许有更好的方法?我的目标是能够更新:
RUN_TESTS = (590,720)
在我的源代码中,让正确的事情发生
谢谢!
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
我所有的鼻子测试都是以下形式:
def test_555(): chk(555); do_some_testing(...)
def test_556(): chk(556); some_more_testing()
chk() 函数将检查该测试编号是否是我当前想要执行的编号——这是我自己基于数值范围的忽略测试逻辑。这个函数只是引发:unittest.SkipTest() 跳过测试。
我对这个设置很满意,但我想以某种方式自动装饰我的所有测试,从而自动为每个测试派生 'chk(i)' 检查。我看不到如何在测试本身期间获取当前正在执行的测试对象,也看不到如何以某种方式自动装饰所有测试。
但也许有更好的方法?我的目标是能够更新:
RUN_TESTS = (590,720)
在我的源代码中,让正确的事情发生
谢谢!
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