2

我想在每个测试方法的文档字符串中存储提示,因此测试加载器可以根据这些提示包含或排除测试。像这样的东西:

def test_login_with_valid_credentials(self):
    '''#functional #security #nondestructive'''
    # code goes here

然后测试加载器会发现所有包含子字符串 '#functional' 或其他内容的测试。

我试图避免为此目的使用装饰器,因为我认为使用文档字符串会更灵活。(也许我错了。)

作为新手,我将不胜感激。谢谢!

4

2 回答 2

3

鼻子装饰器不@attr就是为了那个吗?https://nose.readthedocs.org/en/latest/plugins/attrib.html

from nose.plugins.attrib import attr

@attr(tags=['b','c'])
def test_bc():
    print 1

@attr(tags=['a','b'])
def test_ab():
    print 1

@attr(tags=['a'])
def test_a():
    print 1

然后您可以选择一个或多个值来运行:

> nosetests -v -a tags=b  test.py         
test.test_bc ... ok
test.test_ab ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.001s

> nosetests -v -a tags=b -a tags=a test.py
test.test_bc ... ok
test.test_ab ... ok
test.test_a ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.002s
于 2012-11-07T09:32:58.483 回答
0

如果有人想知道,这是实际的语法:

@attr(functional=True, security=True, nondestructive=False)

并因此调用测试:

/usr/local/bin/nosetests -v --exe -a functional -w test_directory
于 2013-02-17T04:02:30.130 回答