Flask Web開発15章テストコードカバー度レポート
1941 ワード
先着コード
*(venv)flask test--coverage*を使用して実行
本人の環境では、このコマンドプロンプトを実行します.
理由は*sys.Argv*の最初のパラメータは*'D:\PycharmProjects\flask_blog\venv\Scripts\flask*システムでこのファイルが見つかりません
コードの変更
修正*sys.Argv*の最初の項目は、末尾に*「.exe」*を追加して正常に実行します.
import os
import sys
import click
from app import create_app, db
from app.models import User, Role, Permission, Follow, Post, Comment
from flask_migrate import Migrate
COV = None
if os.environ.get("FLASK_COVERAGE"):
import coverage
COV = coverage.coverage(branch=True, include="app/*")
COV.start()
app = create_app("default")
migrate = Migrate(app, db)
@app.cli.command()
@click.option("--coverage/--no-coverage", default=False, help="Run tests under code coverage")
def test(coverage):
"""Run the unit tests."""
if coverage and not os.environ.get("FLASK_COVERAGE"):
os.environ["FLASK_COVERAGE"] = "1"
os.execvp(sys.executable, [sys.executable]+sys.argv)
import unittest
tests = unittest.TestLoader().discover("tests")
unittest.TextTestRunner(verbosity=2).run(tests)
if COV:
COV.stop()
COV.save()
print("Coverage Summary:")
COV.report()
basedir = os.path.abspath(os.path.dirname(__file__))
covdir = os.path.join(basedir, "tmp/coverage")
COV.html_report(directory=covdir)
print("HTML version: file://%s/index.html" % covdir)
COV.erase()
*(venv)flask test--coverage*を使用して実行
本人の環境では、このコマンドプロンプトを実行します.
can't open file 'D:\PycharmProjects\flask_blog\venv\Scripts\flask': [Errno 2] No such file or directory
理由は*sys.Argv*の最初のパラメータは*'D:\PycharmProjects\flask_blog\venv\Scripts\flask*システムでこのファイルが見つかりません
コードの変更
if coverage and not os.environ.get("FLASK_COVERAGE"):
os.environ["FLASK_COVERAGE"] = "1"
os.execvp(sys.executable, [sys.executable]+[sys.argv[0]+".exe"]+sys.argv[1:])
修正*sys.Argv*の最初の項目は、末尾に*「.exe」*を追加して正常に実行します.