[英]How do I find out if the current test is the last to be run?
如何从当前测试中找出它最后一次运行? (Python unittest / nosetests)
我有一些特定的夹具拆解要在测试运行的最后完成,如果在测试基础上测试我可以更容易地确定:
if last_test:
hard_fixture_teardown()
else:
soft_fixture_teardown()
我有一个软件包拆解,它可以很好地工作,但它似乎非常混乱,将夹具信息传递回__init__.teardown_package()
。
您可以使用TestCase.tearDown()
和TestCase.tearDownClass()
来实现此目的。 为每个测试方法调用tearDown()
,同时在类中的所有测试运行后调用tearDownClass()
。
如此处所述,单元测试并不意味着有一个订单,单元测试取决于订单要么没有很好地构思,要么只需要合并为单片测试。 (在单个测试中合并单独的函数是可接受的答案)
[评论后编辑]
如果订单不重要,你可以这样做(非常混乱,我们仍然强迫应该如何使用单元测试的界限)
在您放置的每个测试包中:
def tearDownModule():
xxx = int(os.getenv('XXX', '0')) + 1
if xxx == NUMBER_OF_TEST_PACKAGES:
print "hard tear down"
else:
print "not yet"
os.environ['XXX'] = str(xxx)
从全球某处导入NUMBER_OF_TEST_PACKAGES。
另外,如果顺序不重要,我想在使用时只需重新加入灯具而不进行修改,如果是这样,你可以将它设置为类方法
@classmethod
def setUpClass(cls):
print "I'll take a lot of time here"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.