diff --git a/httprunner/__init__.py b/httprunner/__init__.py index 58135234..df85fade 100644 --- a/httprunner/__init__.py +++ b/httprunner/__init__.py @@ -1 +1 @@ -__version__ = '0.8.1c' \ No newline at end of file +__version__ = '0.8.1d' \ No newline at end of file diff --git a/httprunner/runner.py b/httprunner/runner.py index 9f11a4e4..e74f466f 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -138,8 +138,8 @@ class Runner(object): err_msg += u"HTTP response content: \n{}".format(resp.text) logging.error(err_msg) raise - - setup_teardown(teardown_actions) + finally: + setup_teardown(teardown_actions) return True diff --git a/tests/test_runner.py b/tests/test_runner.py index ad530fa2..6c45df2d 100644 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -1,4 +1,5 @@ import os +import time from httprunner import exception, runner, testcase @@ -58,11 +59,16 @@ class TestRunner(ApiServerUnittest): "validate": [ {"check": "status_code", "expect": 205}, {"check": "content.token", "comparator": "len_eq", "expect": 19} - ] + ], + "teardown": ["${sleep(2)}"] } with self.assertRaises(exception.ValidationError): + start_time = time.time() self.test_runner._run_test(test) + end_time = time.time() + # check if teardown function executed + self.assertGreater(end_time - start_time, 2) def test_run_testset_hardcode(self): for testcase_file_path in self.testcase_file_path_list: