pytest_generate_testsでtmpdir_factory:Pytest - だから私は、コードの二つの主要な部分を持って
- は、ディレクトリ内の設定ファイルの豊富なコレクションを生成します。
- 前のバージョンで生成された1つの設定ファイルを実行します。
私は最初にcode1を実行し、すべてのファイルを生成し、各設定ファイルに対してcode2を実行し、結果が良好であることを確認するテストを実行します。 私の試みはこれまでのところだった:
@pytest.fixture(scope='session')
def pytest_generate_tests(metafunc, tmpdir_factory):
path = os.path.join(tmpdir_factory, "configs")
gc.main(path,
gc.VARIANTS, gc.MODELS,
default_curvature_avg=0.0,
curvature_avg_variation=0.9,
default_gradient_avg=0.0,
gradient_avg_variation=0.9,
default_inversion="approximate",
vary_inversion=False,
vary_projections=True)
params = []
for model in os.listdir(path):
model_path = os.path.join(path, model)
for dataset in os.listdir(model_path):
dataset_path = os.path.join(model_path, dataset)
for file_name in os.listdir(dataset_path):
config_file = os.path.join(dataset_path, file_name)
folder = os.path.join(dataset_path, file_name[:-5])
tmpdir_factory.mktemp(folder)
params.append(dict(config_file=config_file, output_folder=folder))
metafunc.addcall(funcargs=dict(config_file=config_file, output_folder=folder))
def test_compile_and_error(config_file, output_folder):
final_error = main(config_file, output_folder)
assert final_error < 0.9
しかし、tmpdir_factory
フィクスチャはpytest_generate_tests
方法では動作しません。私の質問は、すべてのテストを生成して目標を達成する方法です。
ありがとうございました。 –