python - unittest.TestCase 中的 setUp 方法是否知道当前的测试用例?

标签 python unit-testing

unittest.TestCase 中的 setUp 方法是否知道下一个将要执行的测试用例是什么?例如:

import unittest

class Tests(unittest.TestCase):
    def setUp(self):
        print "The next test will be: " + self.next_test_name()

    def test_01(self):
        pass

    def test_02(self):
        pass

if __name__ == '__main__':
    unittest.main()

这样的代码应该在执行时产生:

The next test will be: test_01
The next test will be: test_02

最佳答案

不,unittest 不保证测试执行的顺序。

此外,您应该构建不依赖于任何特定顺序的单元测试。如果他们需要来自另一种测试方法的一些状态设置,那么根据定义,您不再拥有单元测试。

将要执行的当前测试方法名称位于self._testMethodName中,但使用它需要您自担风险(访问_private属性如有破损,恕不另行通知)。不要使用它来根据特定的测试方法自定义 setUp,更喜欢将需要不同设置的测试拆分到单独的测试类中。

关于python - unittest.TestCase 中的 setUp 方法是否知道当前的测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30569459/

相关文章:

java - MockRestServiceServer 中是否有现成的类来捕获请求正文以进行日志记录等?

java - 如何对创建新对象的类进行单元测试

Angular 5 测试 - 全局配置测试平台

python - anaconda环境位置问题

python - Python time.sleep() 的上限?

python - 如何使用 xlwt 在 python 中插入整列的值

python - 使用 PyAudio 和 NumPy 同时录制和播放音频

java - 如何通过 PowerMockito 模拟 String#equals 方法

python - 将一维结构化数组转换为二维 numpy 数组

c++ - 如何在单元测试中访问私有(private)成员?