如何从unittes中的testsuite获取当前运行的testcase名称

2024-05-19 02:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

如何获取当前运行的testcase name,而在testsuite集合中有16个testcase。测试按顺序执行(按将测试添加到testSuite集合的顺序)。当我将所有测试添加到testSuite集合时,我可以预览此对象,但如何在测试运行时获取当前正在执行的测试。也许某个变量包含了这些信息?

示例:

def suite():
    testSuite= unittest.TestSuite()
    testSuite.addTest(FlightsTestCases('test_sel__reservation_one_way_wizzair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_wizzair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_round_wizzair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_tair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_round_tair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_wizzair_credit_card'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_tair_credit_card'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_round_wizzair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_wizzair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_easyjet_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_ryanair_transfer'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_round_ryanair_credit_card'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_tair_duplicated'))
    testSuite.addTest(FlightsTestCases('test_reservation_wrong_card_lowcost'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_tair_credit_card'))
    testSuite.addTest(FlightsTestCases('test_sel_reservation_one_way_tair_wrong_credit_card'))

    return testSuite

if __name__ == "__main__":
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    sys.exit(not result.wasSuccessful())

使用Selenium RC框架执行测试。


Tags: testcardonetestcasewaytransfercreditreservation
3条回答

unittest.TestCase._testMethodName

示例代码:

import unittest


class BasicTests(unittest.TestCase):

    def test_print(self):
        print(self._testMethodName)

unittest.TestCase.shortDescription()

Returns a description of the test, or None if no description has been provided. The default implementation of this method returns the first line of the test method’s docstring, if available, or None.

unittest.TestCase.id()

Return a string identifying the specific test case. This is usually the full name of the test method, including the module and class name.

希望其中一个对你的需要有用。

我有一个类似的问题,但是这些测试是可重用的测试,并且使用验证功能。当某件事失败时,我让验证功能做我想做的工作。例如将失败的测试名称写入日志。这些例子说call id()或_testMethodName(unittest.TestCase.id()),但在Python2.7中两者都不适用。在python中,我不知道如何动态获取活动的unittest运行程序。

import unittest

def verify( expected, actual ):
    assert expected == actual, 'Failed: ' + str(unittest.TestCase.id())

# Reusable Test
def theTest( exp ):
    verify( exp, 'keith2' )

class SomeTests(unittest.TestCase):
        def test_one(self):
            theTest( 'keith' )

        def test_two(self):
            theTest( 'keith2')

if __name__ == '__main__':
    unittest.main( argv=sys.argv, testRunner = unittest.TextTestRunner(verbosity=2))

相关问题 更多 >

    热门问题