【发布时间】:2013-08-09 06:13:26
【问题描述】:
我已经阅读过;我能找到的最接近的是提到不支持使用生成器函数和装饰器函数
class getsize 带有方法:setUp tearDown 和 getfilesize
用鼻子with_setup(setUp,tearDown)。
我还有一个独特的生成函数(在同一个文件中)
使用循环创建getsize class 的实例并调用方法getfilesize。
当我通过nosetests; 运行文件时,我发现@with_setup 仅在nose 运行类时才运行完成。
当我运行生成器函数时;它永远不会被访问。作为解决方法,我添加了对setUp 和tearDown 方法的调用;我得到了预期的结果。这真的让我很烦恼,我已经付出了相当大的努力来寻找答案。
[附加] 这是代码部分:
class Test_getFileSize:
import logging
from nose.tools import with_setup
log = logging.getLogger("Test getfilesize")
def setUp(self):
print " running Setup",self.testsize
with open(self.mytestfile, "wb") as out:
out.seek(self.testsize-1)
out.write('0')
out.close()
def tearDown(self):
import os
print "Running tearDown"
os.remove(self.mytestfile)
@with_setup(setUp,tearDown)
def test_getFileSize(self):`
[此方法的其余部分和 init 跟随但与问题无关。
【问题讨论】:
-
这是类装饰器还是函数装饰器?
-
from nose import with_setup docstring 说:装饰器将设置和/或拆卸方法添加到测试函数
-
这是一个鼻子文档说支持的方法装饰器。