1

Visual Studio Code 1.39.2 と PyTest 6 を Python 3.8 で使用しています。私はこのpytest.iniファイルを持っています

[pytest]
addopts = --docker-compose=./tests/docker-compose.yml --docker-compose-remove-volumes
env_override_existing_values = 1
env_files =
    tests/.test_env

そしてその下には、これが conftest.py ファイルの先頭にあります...

def pytest_configure(config):
    use_docker = False
    try:
        use_docker = config.getoption("--docker-compose-remove-volumes")
    except:
        pass
    plugin_name = 'wait_for_docker' if use_docker else 'wait_for_server'
    logging.info("\n\n\ndocker value %s", use_docker)
    logging.info("\n\n\n\n\nplugin name %s", plugin_name)
    if not config.pluginmanager.has_plugin(plugin_name):
        config.pluginmanager.import_plugin("tests.plugins.{}".format(plugin_name))

ただし、Visual Studio Code のみで、テストを実行しようとすると、エディターの [テストの実行] または [テストのデバッグ] リンクをクリックして...

ここに画像の説明を入力

テストは上記の最後の行で死ぬ...

    config.pluginmanager.import_plugin("tests.plugins.{}".format(plugin_name))

以下のエラーで....

INTERNALERROR> ValueError: Plugin already registered: tests.plugins.wait_for_docker=<module 'tests.plugins.wait_for_docker' from '/Users/davea/Documents/workspace/my_project/tests/plugins/wait_for_docker.py'>

コマンドラインでテストを単独で実行すると、これは発生しません...

pytest tests/functions/test_my_stuff.py

VS Code はプラグインを別の方法でロードしますか? または、コマンド ラインのように機能させるためにクリアする必要があるキャッシュ データがありますか?

4

0 に答える 0