python - 我可以用 Nose 嵌套测试用例吗?

标签 python testing bdd nose

我已经成为 RSpec 和 Jasmine 等嵌套测试用例上下文的粉丝,我想知道是否有任何 Nose 插件实现了允许您将类嵌套为上下文的测试查找器。生成的测试将类似于以下内容:

from nose.tools import *
from mysystem import system_state

class TestMySystem (TestCase):
    def setUp(self):
        system_state.initialize()

    class WhenItIsSetTo1 (TestCase):
        def setUp(self):
            system_state.set_to(1)

        def test_system_should_be_1 (self):
            assert_equal(system_state.value(), 1)

    class WhenItIsSetTo2 (TestCase):
        def setUp(self):
            system_state.set_to(2)

        def test_system_should_be_2 (self):
            assert_equal(system_state.value(), 2)

在上述假设情况下,system_state.initialize() 将在每次测试之前被调用。我知道有 PyVows 可以做这样的事情,它看起来不错,但我正在寻找可以插入我当前项目的东西,该项目已经有许多单元测试/ Nose 式测试。

最佳答案

听起来您希望您的某些测试从其他测试继承设置代码:

from nose.tools import *
from mysystem import system_state

class TestMySystem (TestCase):
    def setUp(self):
        system_state.initialize()

class WhenItIsSetTo1 (TestMySystem):
    def setUp(self):
        super(WhenItIsSetTo1, self).setUp()
        system_state.set_to(1)

    def test_system_should_be_1 (self):
        assert_equal(system_state.value(), 1)

class WhenItIsSetTo2 (TestMySystem):
    def setUp(self):
        super(WhenItIsSetTo2, self).setUp()
        system_state.set_to(2)

    def test_system_should_be_2 (self):
        assert_equal(system_state.value(), 2)

这样做时要小心;如果您在父类中有实际的测试方法,它们也会在子类运行时执行(当然)。当我这样做时,我喜欢制作只提供 setUp、tearDown 和 classSetup/classTearDown 的纯父测试类。

这应该允许您进行任意级别的嵌套,但是一旦您这样做了,您将需要单元测试来进行单元测试...

关于python - 我可以用 Nose 嵌套测试用例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769068/

相关文章:

python - 在 Windows 7x64 上从 Python3.x 调用 Matlab2013

python - 列表中多个最小元素的索引

python迷宫递归不递归

android - Android 的测试驱动开发

testing - go中接口(interface)模拟的方法

angularjs - 用 Jasmine 测试 Angular "controller as"

ruby - 遍历具有相同类名的 div

cucumber - 在 cucumber 中使用背景部分时出现 "required (...)+ loop did not match anything at input ' 场景 :'"错误

python - Django REST Framework - 在创建时序列化嵌套关系

user-interface - 如何测试网站的UI?