【发布时间】:2012-10-15 18:00:17
【问题描述】:
我使用unittest 测试我的Flask 应用程序,并使用nose 实际运行测试。
我的第一组测试是确保测试环境干净,并防止在 Flask 应用程序配置的数据库上运行测试。我确信我已经干净地设置了测试环境,但我希望在不运行所有测试的情况下对此有所保证。
import unittest
class MyTestCase(unittest.TestCase):
def setUp(self):
# set some stuff up
pass
def tearDown(self):
# do the teardown
pass
class TestEnvironmentTest(MyTestCase):
def test_environment_is_clean(self):
# A failing test
assert 0 == 1
class SomeOtherTest(MyTestCase):
def test_foo(self):
# A passing test
assert 1 == 1
如果TestEnvironmentTest 失败,我希望unittest 或nose 保释,并阻止SomeOtherTest 和任何进一步的测试运行。在unittest(首选)或nose 中是否有一些内置方法允许这样做?
【问题讨论】:
-
你知道nose是否解决了测试排序问题吗?因为在 python 中你不能保证测试顺序(虽然我认为它通常会解析为字母顺序)。
-
嗯,这也将是另一个问题......但我想这可以通过在你的设置中进行测试来解决。
-
@Colleen 嗯不完全...我想运行所有测试,即使它们有错误,但我希望我的环境测试在任何其他测试运行之前通过。您的第一个建议有效:我将环境测试放入 setUp。好像我错了......测试之间持续存在一些东西,糟糕糟糕!
-
哦,对不起,误解了你的问题。如果您未通过 TestEnvironmentTest,您认为您想立即失败。
标签: python unit-testing nose