翻訳は、オンラインコース「PythonDeveloper.Professional」の一部として作成されました。
また、オープンデモレッスン「Python3.10の新機能」に皆さんを招待します。このウェビナーでは、次のPython3.10リリースに含まれる最も重要なPEPについて説明します。特に、型の操作方法が変わります。
. coverage.py. , :
, : , . unittest.TestCase
, «» . , , - , , pytest .
, ? , - , .
def setup_test(self):
import inspect
project_home = "/Users/ned/coverage"
site_packages = ".tox/py39/lib/python3.9/site-packages/"
with open("/tmp/foo.txt", "a") as foo:
print("setup_test", file=foo)
for t in inspect.stack()[::-1]:
# t is (frame, filename, lineno, function, code_context, index)
frame, filename, lineno, function = t[:4]
filename = os.path.relpath(filename, project_home)
filename = filename.replace(site_packages, "")
show = "%30s : %s:%d" % (function, filename, lineno)
print(show, file=foo)
, . : . , . , , , .
, , . :
setup_test
<module> : igor.py:424
main : igor.py:416
do_test_with_tracer : igor.py:216
run_tests : igor.py:133
main : _pytest/config/__init__.py:84
__call__ : pluggy/hooks.py:286
_hookexec : pluggy/manager.py:93
<lambda> : pluggy/manager.py:84
_multicall : pluggy/callers.py:187
pytest_cmdline_main : _pytest/main.py:243
wrap_session : _pytest/main.py:206
_main : _pytest/main.py:250
__call__ : pluggy/hooks.py:286
_hookexec : pluggy/manager.py:93
<lambda> : pluggy/manager.py:84
_multicall : pluggy/callers.py:187
pytest_runtestloop : _pytest/main.py:271
__call__ : pluggy/hooks.py:286
_hookexec : pluggy/manager.py:93
<lambda> : pluggy/manager.py:84
_multicall : pluggy/callers.py:187
pytest_runtest_protocol : flaky/flaky_pytest_plugin.py:94
pytest_runtest_protocol : _pytest/runner.py:78
runtestprotocol : _pytest/runner.py:87
call_and_report : flaky/flaky_pytest_plugin.py:138
call_runtest_hook : _pytest/runner.py:197
from_call : _pytest/runner.py:226
<lambda> : _pytest/runner.py:198
__call__ : pluggy/hooks.py:286
_hookexec : pluggy/manager.py:93
<lambda> : pluggy/manager.py:84
_multicall : pluggy/callers.py:187
pytest_runtest_setup : _pytest/runner.py:116
prepare : _pytest/runner.py:362
setup : _pytest/python.py:1468
fillfixtures : _pytest/fixtures.py:296
_fillfixtures : _pytest/fixtures.py:469
getfixturevalue : _pytest/fixtures.py:479
_get_active_fixturedef : _pytest/fixtures.py:502
_compute_fixture_value : _pytest/fixtures.py:587
execute : _pytest/fixtures.py:894
__call__ : pluggy/hooks.py:286
_hookexec : pluggy/manager.py:93
<lambda> : pluggy/manager.py:84
_multicall : pluggy/callers.py:187
pytest_fixture_setup : _pytest/fixtures.py:936
call_fixture_func : _pytest/fixtures.py:795
connect_to_pytest : tests/mixins.py:33
setup_test : tests/test_process.py:1651
, , . , . ?
, , . pytest , . pytest, , , .
, : . . ( ), ( ). , , , .
, , id , id , . , ? , , . , , .
. , , , . , :
def setup_test(self):
import inspect
project_home = "/Users/ned/coverage"
site_packages = ".tox/py39/lib/python3.9/site-packages/"
with open("/tmp/foo.txt", "a") as foo:
print("setup_test", file=foo)
for t in inspect.stack()[::-1]:
# t is (frame, filename, lineno, function, code_context, index)
frame, filename, lineno, function = t[:4]
visits = frame.f_locals.get("$visits", 0) ## new
frame.f_locals["$visits"] = visits + 1 ## new
filename = os.path.relpath(filename, project_home)
filename = filename.replace(site_packages, "")
show = "%30s : %d %s:%d" % (function, visits, filename, lineno)
print(show, file=foo)
, . :
setup_test
<module> : 1 igor.py:424
main : 1 igor.py:416
do_test_with_tracer : 1 igor.py:216
run_tests : 1 igor.py:133
main : 1 _pytest/config/__init__.py:84
__call__ : 1 pluggy/hooks.py:286
_hookexec : 1 pluggy/manager.py:93
<lambda> : 1 pluggy/manager.py:84
_multicall : 1 pluggy/callers.py:187
pytest_cmdline_main : 1 _pytest/main.py:243
wrap_session : 1 _pytest/main.py:206
_main : 1 _pytest/main.py:250
__call__ : 1 pluggy/hooks.py:286
_hookexec : 1 pluggy/manager.py:93
<lambda> : 1 pluggy/manager.py:84
_multicall : 1 pluggy/callers.py:187
pytest_runtestloop : 1 _pytest/main.py:271
__call__ : 1 pluggy/hooks.py:286
_hookexec : 1 pluggy/manager.py:93
<lambda> : 1 pluggy/manager.py:84
_multicall : 1 pluggy/callers.py:187
pytest_runtest_protocol : 1 flaky/flaky_pytest_plugin.py:94
pytest_runtest_protocol : 0 _pytest/runner.py:78
runtestprotocol : 0 _pytest/runner.py:87
call_and_report : 0 flaky/flaky_pytest_plugin.py:138
call_runtest_hook : 0 _pytest/runner.py:197
from_call : 0 _pytest/runner.py:226
<lambda> : 0 _pytest/runner.py:198
__call__ : 0 pluggy/hooks.py:286
_hookexec : 0 pluggy/manager.py:93
<lambda> : 0 pluggy/manager.py:84
_multicall : 0 pluggy/callers.py:187
pytest_runtest_setup : 0 _pytest/runner.py:116
prepare : 0 _pytest/runner.py:362
setup : 0 _pytest/python.py:1468
fillfixtures : 0 _pytest/fixtures.py:296
_fillfixtures : 0 _pytest/fixtures.py:469
getfixturevalue : 0 _pytest/fixtures.py:479
_get_active_fixturedef : 0 _pytest/fixtures.py:502
_compute_fixture_value : 0 _pytest/fixtures.py:587
execute : 0 _pytest/fixtures.py:894
__call__ : 0 pluggy/hooks.py:286
_hookexec : 0 pluggy/manager.py:93
<lambda> : 0 pluggy/manager.py:84
_multicall : 0 pluggy/callers.py:187
pytest_fixture_setup : 0 _pytest/fixtures.py:936
call_fixture_func : 0 _pytest/fixtures.py:795
connect_to_pytest : 0 tests/mixins.py:33
setup_test : 0 tests/test_process.py:1651
– , , – . , flaky_pytest_plugin.py , .
: , . pytest-flaky , . , ( ), pytest-flaky .
, , , . : , .
, , pytest-flaky .
, , . :
setup_test
<module> : 3 igor.py:424
main : 3 igor.py:416
do_test_with_tracer : 3 igor.py:216
run_tests : 3 igor.py:133
main : 3 _pytest/config/__init__.py:84
__call__ : 3 pluggy/hooks.py:286
_hookexec : 3 pluggy/manager.py:93
<lambda> : 3 pluggy/manager.py:84
_multicall : 3 pluggy/callers.py:187
pytest_cmdline_main : 3 _pytest/main.py:243
wrap_session : 3 _pytest/main.py:206
_main : 3 _pytest/main.py:250
__call__ : 3 pluggy/hooks.py:286
_hookexec : 3 pluggy/manager.py:93
<lambda> : 3 pluggy/manager.py:84
_multicall : 3 pluggy/callers.py:187
pytest_runtestloop : 3 _pytest/main.py:271
__call__ : 1 pluggy/hooks.py:286
_hookexec : 1 pluggy/manager.py:93
<lambda> : 1 pluggy/manager.py:84
_multicall : 1 pluggy/callers.py:187
pytest_runtest_protocol : 1 flaky/flaky_pytest_plugin.py:94
pytest_runtest_protocol : 0 _pytest/runner.py:78
runtestprotocol : 0 _pytest/runner.py:87
call_and_report : 0 flaky/flaky_pytest_plugin.py:138
call_runtest_hook : 0 _pytest/runner.py:197
from_call : 0 _pytest/runner.py:226
<lambda> : 0 _pytest/runner.py:198
__call__ : 0 pluggy/hooks.py:286
_hookexec : 0 pluggy/manager.py:93
<lambda> : 0 pluggy/manager.py:84
_multicall : 0 pluggy/callers.py:187
pytest_runtest_setup : 0 _pytest/runner.py:116
prepare : 0 _pytest/runner.py:362
setup : 0 _pytest/python.py:1468
fillfixtures : 0 _pytest/fixtures.py:296
_fillfixtures : 0 _pytest/fixtures.py:469
getfixturevalue : 0 _pytest/fixtures.py:479
_get_active_fixturedef : 0 _pytest/fixtures.py:502
_compute_fixture_value : 0 _pytest/fixtures.py:587
execute : 0 _pytest/fixtures.py:894
__call__ : 0 pluggy/hooks.py:286
_hookexec : 0 pluggy/manager.py:93
<lambda> : 0 pluggy/manager.py:84
_multicall : 0 pluggy/callers.py:187
pytest_fixture_setup : 0 _pytest/fixtures.py:936
call_fixture_func : 0 _pytest/fixtures.py:795
connect_to_pytest : 0 tests/mixins.py:33
setup_test : 0 tests/test_process.py:1651
_pytest/main.py:271
, , !
"Python Developer. Professional"