2014-12-04 38 views
0

一个共同的设置功能,所以我有一个剧本test.py具有测试

from nose.tools import with_setup 

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

我能有setup_func(),并在同一目录中的初始化的.py定义为“测试teardown_func() py”为。

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

回答

0

关于setup_functeardown_func没有什么不可思议的。当然,你可以通过从任何模块导入它们,如果它调用init.py__init__。我建议你把它放在其他一些模块中,比如test_setup.py,因为你可能不希望在测试模块的包级别上有这些定义,并且“明确优于暗含”哲学将被强制执行。

ADDED:但是,这里有一个更大的问题:with_setup仅适用于测试功能,不适用于测试方法或子类内部。正如您所写的,在您的代码中,您的setup函数将不会被调用,无论它在何处指定,请参阅here

如果您打算将您的测试作为类方法,那么您将不得不依赖unittestsetUptearDown方法。如果你愿意,你可以从一个特殊的设置类继承你的测试类,并重新使用这个相同的特殊类来进行不同的测试。

+0

哇我从来不知道我可以从__init__.py导入到其他模块..是真的吗? – user2921139 2014-12-05 01:22:12

+0

为什么我不能在网上找到证实这一点的东西? – user2921139 2014-12-05 15:21:19