diff --git a/cobol_testgen/runner.py b/cobol_testgen/runner.py index 6714c2b..edb1d49 100644 --- a/cobol_testgen/runner.py +++ b/cobol_testgen/runner.py @@ -684,13 +684,17 @@ def _java_scene_label(dst_out_dir: Path) -> str: return cobol_scene.name -def _run_java_scene(program_name: str, scene_id: str, outdir: str, temp_dir: str, +def _run_java_scene(program_name: str, scene_id: str, java_out_dir, temp_dir: str, src_in_dir: Path, dst_out_dir: Path, fd_field_dicts: dict, open_dir: dict, select_info: dict, - java_cfg: dict, log_dir: str | None = None) -> dict: - """单场景:准备 Java 入力 -> 运行 jar -> 收集出力 -> 与 COBOL 出力比对。""" - label = _java_scene_label(dst_out_dir) - java_out_dir = Path(outdir) / 'java' / label / 'output' + java_cfg: dict, log_dir: str | None = None, + label: str | None = None) -> dict: + """单场景:准备 Java 入力 -> 运行 jar -> 收集出力 -> 与 COBOL 出力比对。 + + java_out_dir: Java 出力目录(显式)。label 省略时由 dst_out_dir 推导。 + """ + label = label or _java_scene_label(dst_out_dir) + java_out_dir = Path(java_out_dir) java_work = Path(temp_dir) / f'java_{scene_id}' input_items = _input_fd_assign_len(fd_field_dicts, open_dir, select_info) @@ -961,11 +965,14 @@ def run_all(program_name: str, outdir: str, temp_dir: str, # ── 3h. Java 文件式运行 + COBOL vs Java 出力比对(仅在有 Java 对应程序时)── if java_cfg: + _java_label = _java_scene_label(dst_out_dir) jrep = _run_java_scene( - program_name, scene_id, outdir, str(work_dir), + program_name, scene_id, + Path(outdir) / 'java' / _java_label / 'output', + str(work_dir), src_in_dir, dst_out_dir, fd_field_dicts, open_dir, select_info, - java_cfg, log_dir=log_dir, + java_cfg, log_dir=log_dir, label=_java_label, ) java_reports.append(jrep)