如何获得当前运行的测试用例名称,而在testsuite集合中有16个测试用例。测试按顺序执行(按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框架执行测试。
答案 0 :(得分:52)
unittest.TestCase.shortDescription()
返回测试的描述,如果没有提供描述,则返回None。此方法的默认实现返回测试方法的docstring的第一行(如果可用)或None。
返回标识特定测试用例的字符串。这通常是测试方法的全名,包括模块和类名。
希望其中一个对您的需求有用。
答案 1 :(得分:2)
unittest.TestCase._testMethodName
示例代码:
import unittest
class BasicTests(unittest.TestCase):
def test_print(self):
print(self._testMethodName)
答案 2 :(得分:0)
我有一个类似的问题,但是测试是可重用的测试,并使用验证功能。当发生故障时,我可以使用验证功能进行所需的工作。例如将失败的测试名称写入日志。这些示例说调用id()或_testMethodName(unittest.TestCase.id()),但在python 2.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))