繁体   English   中英

如何确定当前测试是否是最后一次运行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM