0

所以我有一个脚本 test.py

from nose.tools import with_setup

class Test:
    @with_setup(setup_func, teardown_func)
    def test(self):
        print "Hello World"

我可以在与“test.py”相同的目录中的init .py 中定义 setup_func() 和 teardown_func()。

基本上,目标是为一堆测试用例进行通用设置和拆卸。

4

1 回答 1

0

setup_func和没有什么神奇之处teardown_func。您当然可以通过从任何模块导入它们来做到这一点,如果它调用init.py__init__. 我建议您将它放在其他模块中,比如说test_setup.py因为您可能不希望在测试模块的包级别拥有这些定义,并且将强制执行“显式优于隐式”的理念。

补充:但是,这里有一个更大的问题:with_setup仅对测试函数有用,对测试方法或子类内部无效。如所写,在您的代码中,setup无论在何处指定您的函数都不会被调用,请参见此处

如果您打算将测试作为类方法,则必须依赖unittestsetUp的andtearDown方法。如果您愿意,您可以从一个特殊的设置类继承您的测试类,并为不同的测试再次重用这个相同的特殊类。

于 2014-12-05T01:18:44.847 回答