如何定义在使用 nosetest 进行测试期间只调用一次的设置方法?

How to define a setup method only called once during testing with nosetest?

我运行正在 nosetests 中使用不同模块(文件)中的测试用例,每个模块(文件)都包含不同的测试。

我想定义一个 function/method,在 nosetest 执行期间只调用一次。

我查看了 documentation (and e.g. ),发现有 setup_module 等方法 - 但在哪里以及如何使用它们?将它们放入我的__init__.py?还有别的吗?

我尝试使用以下内容:

class TestSuite(basicsuite.BasicSuite):
    def setup_module(self):
        print("MODULE")

    ...

但是当我 运行 使用 nosetest 进行测试时,此打印输出从未完成。我也没有从 unittest.TestCase 派生(这会导致错误)。

查看包级别时,您可以在该包的 __init__.py 中定义一个名为 setup 的函数。调用这个包中的测试,调用一次__init__.py中的setup函数。

示例设置

- package
    - __init__.py
    - test1.py
    - test2.py

参见 documentation 部分 'Test packages'。

试试这个

from nose import with_setup

def my_setup_function():
    print ("my_setup_function")

def my_teardown_function():
    print ("my_teardown_function")

@with_setup(my_setup_function, my_teardown_function)
def test_my_cool_test():
    assert my_function() == 'expected_result'

求助^^