【发布时间】:2021-02-11 19:19:18
【问题描述】:
我们正在使用带有unittest 的Django。 @unittest.skip 装饰器会跳过一些测试。但是,如果我使用 Python 3.6 或 3.7 运行测试,我会通过一些测试 (Ran 993 tests / OK),如果我使用 Python 3.8 运行相同的测试,我会得到相同数量的测试但跳过了一些测试 (@ 987654325@)。我想知道 Python 3.6 和 3.7 是否也跳过了相同的测试,还是仅使用 Python 3.8?为什么我只能使用 Python 3.8 获得跳过的输出?数字 993 是否包括跳过的测试?其中一个输出不正确吗?因为不同版本的 Python 的输出不同是没有意义的,我不明白这种差异的原因。我没有在文档中找到它。
我们的代码是开源的,您可以看到例如跳过的测试here。
更新:我用装饰器 @unittest.skip 添加了另外 4 个测试。当我使用 Python 3.8 运行所有测试时,我会得到以下输出:Ran 997 tests / OK (skipped=8)(每个跳过的测试都有一个s,就像以前一样)。但是,如果我使用 Python 3.6 或 3.7 运行测试,我会得到以下输出:Ran 997 tests / OK,并且输出中没有 s,就像以前一样(我得到 997 个点)。虽然我比以前多了 4 次测试。
我添加的测试会引发异常,因此如果不跳过它们就会失败。
我认为跳过的测试在所有 Python 版本中都被跳过,但在 Python 3.6 和 3.7 中,没有关于它们被跳过的输出。是bug吗?
【问题讨论】:
-
这似乎很容易测试。只需添加一个新的跳过测试,看看“Ran 993 测试”是否在 3.7 上变为“Ran 994 测试”
-
@AdamSmith 我会检查并告诉你。这可能需要一些时间,因为测试速度很慢。
-
@MrBeanBremen 请查看我的更新。你能解释一下吗?
-
@MrBeanBremen 数字 993 是测试的总数,包括跳过的测试。
标签: python django unit-testing python-unittest django-unittest