我对Python的unittest
库有点陌生,目前正在考虑在运行任何集成测试之前设置Flask服务器。我知道unittest.TestCase类允许您在类中的每个测试用例之前使用setUp()
。我还知道,同一个类有另一个名为setUpClass()
的方法,它只对整个类运行一次
我真正感兴趣的是试图找出如何在整个unittest.TestSuite上完成类似于setUpClass()
的操作。然而,我在这方面没有运气
当然,我可以为每个测试用例设置服务器,但我希望避免这样做
在一个单独的问题上有一个answer,它表明通过重写unittest.TestResult的startTestRun()
,您可以拥有一个覆盖整个测试套件的设置函数。但是,我尝试将自定义TestResult对象传递到unittest中。TextTestRunner没有成功
那么,我怎样才能为整个测试套件进行设置呢
这是没有很好的记录,但我最近也需要这样做
docs mention that
TestResult.startTestRun
“在执行任何测试之前调用一次”如您所见,在the implementation中,该方法不做任何事情
我试着对
TestResult
和各种事情进行子类化。我一点也做不到,所以我最后在课堂上打了个补丁在我的测试包的
__init__.py
中,我做了以下操作:如果您需要在所有测试运行之后运行清理代码,那么还有一个
stopTestRun
方法请注意,这并不构成
TestResult
的单独版本。与往常一样,unittest
模块使用现有的一个。我们所做的唯一一件事就是通过外科手术移植到startTestRun
的自定义实现上相关问题 更多 >
编程相关推荐