Merge pull request #664 from httprunner/fix_exit_code

2.2.5
This commit is contained in:
debugtalk
2019-07-28 17:27:04 +08:00
committed by GitHub
7 changed files with 39 additions and 17 deletions

View File

@@ -13,6 +13,8 @@ install:
- pip install poetry
- poetry install -vvv
script:
- python -m httprunner.cli hrun -V
- python -m httprunner.cli hrun -h
- poetry build
- poetry run coverage run --source=httprunner -m unittest discover
after_success:

View File

@@ -1,6 +1,17 @@
# Release History
## 2.2.4 (2019-07-13)
## 2.2.5 (2019-07-28)
**Added**
- log HttpRunner version when initializing
**Fixed**
- fix #658: sys.exit 1 if any testcase failed
- fix ModuleNotFoundError in debugging mode if httprunner uninstalled
## 2.2.4 (2019-07-18)
**Changed**

View File

@@ -1,4 +1,4 @@
__version__ = "2.2.4"
__version__ = "2.2.5"
__description__ = "One-stop solution for HTTP(S) testing."
__all__ = ["__version__", "__description__"]

View File

@@ -3,8 +3,8 @@
import os
import unittest
from httprunner import (exceptions, loader, logger, parser, report, runner,
utils, validator)
from httprunner import (__version__, exceptions, loader, logger, parser,
report, runner, utils, validator)
class HttpRunner(object):
@@ -22,6 +22,9 @@ class HttpRunner(object):
log_file (str): log file path.
"""
logger.setup_logger(log_level, log_file)
logger.log_info("HttpRunner version: {}".format(__version__))
self.exception_stage = "initialize HttpRunner()"
kwargs = {
"failfast": failfast,
@@ -33,8 +36,6 @@ class HttpRunner(object):
self.report_template = report_template
self.report_dir = report_dir
self._summary = None
if log_file:
logger.setup_logger(log_level, log_file)
def _add_tests(self, testcases):
""" initialize testcase with Runner() and add to test suite.

View File

@@ -3,8 +3,9 @@
def main_hrun():
""" API test: parse command line options and run commands.
"""
import sys
import argparse
from httprunner import logger
from httprunner.logger import color_print
from httprunner import __description__, __version__
from httprunner.api import HttpRunner
from httprunner.compat import is_py2
@@ -51,13 +52,12 @@ def main_hrun():
help="Prettify JSON testcase format.")
args = parser.parse_args()
logger.setup_logger(args.log_level, args.log_file)
if is_py2:
logger.log_warning(get_python2_retire_msg())
color_print(get_python2_retire_msg(), "YELLOW")
if args.version:
logger.color_print("{}".format(__version__), "GREEN")
color_print("{}".format(__version__), "GREEN")
exit(0)
if args.validate:
@@ -76,16 +76,21 @@ def main_hrun():
failfast=args.failfast,
save_tests=args.save_tests,
report_template=args.report_template,
report_dir=args.report_dir
report_dir=args.report_dir,
log_level=args.log_level,
log_file=args.log_file
)
try:
for path in args.testcase_paths:
runner.run(path, dot_env_path=args.dot_env_path)
except Exception:
logger.log_error("!!!!!!!!!! exception stage: {} !!!!!!!!!!".format(runner.exception_stage))
color_print("!!!!!!!!!! exception stage: {} !!!!!!!!!!".format(runner.exception_stage), "YELLOW")
raise
return 0
if runner.summary and runner.summary["success"]:
sys.exit(0)
else:
sys.exit(1)
def main_locust():
@@ -182,9 +187,12 @@ if __name__ == "__main__":
""" debugging mode
"""
import sys
import os
if len(sys.argv) == 0:
exit(0)
sys.path.insert(0, os.getcwd())
cmd = sys.argv.pop(1)
if cmd in ["hrun", "httprunner", "ate"]:
@@ -196,7 +204,7 @@ if __name__ == "__main__":
color_print("Miss debugging type.", "RED")
example = "\n".join([
"e.g.",
"python main-debug.py hrun /path/to/testcase_file",
"python main-debug.py locusts -f /path/to/testcase_file"
"python -m httprunner.cli hrun /path/to/testcase_file",
"python -m httprunner.cli locusts -f /path/to/testcase_file"
])
color_print(example, "yellow")

View File

@@ -19,7 +19,7 @@ logger = logging.getLogger("httprunner")
def setup_logger(log_level, log_file=None):
"""setup root logger with ColoredFormatter."""
"""setup logger with ColoredFormatter."""
level = getattr(logging, log_level.upper(), None)
if not level:
color_print("Invalid log level: %s" % log_level, "RED")

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "httprunner"
version = "2.2.4"
version = "2.2.5"
description = "One-stop solution for HTTP(S) testing."
license = "Apache-2.0"
readme = "README.md"