@@ -118,7 +118,8 @@ test_cases/<name>/
118118│ # before Export (runs in pytest + xa11y)
119119├── expected/ # what we compare against
120120│ ├── job_bundle/ # golden template/parameter_values/asset_references
121- │ └── renders/ # golden render PNGs (Windows-only compare)
121+ │ └── renders/ # version-specific golden PNGs (Windows-only compare)
122+ │ └── <C4D_VERSION>/ # required baseline for each tested C4D version
122123└── actual/ # gitignored — runtime output; kept on failure
123124```
124125
@@ -134,7 +135,29 @@ need per-farm regeneration.
134135` input/scene.py ` runs inside ** c4dpy** (Cinema 4D's headless Python) and is saved
135136into ` actual/ ` (not ` input/ ` ), so render paths under ` renders/ ` resolve into
136137` actual/renders/ ` . Cases may override the output filename, but keep this
137- directory stable for render comparison.
138+ directory stable for render comparison. Render comparison requires a baseline
139+ under ` expected/renders/<C4D_VERSION>/ ` . Failed Windows CI cases
140+ retain their generated images and upload them in the
141+ ` cinema4d-<version>-render-outputs ` workflow artifact for seven days.
142+
143+ #### Downloading render outputs from CI
144+
145+ Use the versioned Windows CI jobs when render goldens cannot be generated
146+ locally:
147+
148+ 1 . Push the changes to the ` feature/ci-tests ` branch in this repository.
149+ 2 . Wait for the ** Cinema 4D xa11y Integration Tests** workflow to finish.
150+ 3 . Open the workflow run and download the
151+ ` cinema4d-<C4D_VERSION>-render-outputs ` artifact for each required version.
152+ 4 . Extract the artifact and review every PNG under
153+ ` <case>/actual/renders/ ` .
154+ 5 . Copy approved images into
155+ ` test/integ/test_cases/<case>/expected/renders/<C4D_VERSION>/ ` , or
156+ ` expected/<variant>/renders/<C4D_VERSION>/ ` for a parametrized case.
157+
158+ The artifact step always runs, but successful cases remove their ` actual/ `
159+ directory before upload. Missing or mismatched goldens leave render output
160+ behind for collection. Never commit the extracted ` actual/ ` directories.
138161
139162#### Focused settings coverage
140163
@@ -252,6 +275,11 @@ production.
252275hatch run integ:test # all xa11y integ tests
253276```
254277
278+ CI runs this suite against Cinema 4D 2024, 2025, and 2026 on Windows and
279+ macOS. All six jobs run in parallel. Local runs default to Cinema 4D 2026.
280+ Set ` C4D_VERSION ` for an older version and set ` C4D_LOCATION ` only when its
281+ installation is outside that version's default path.
282+
255283The ` integ:test ` script hardcodes the ` test/integ ` path and
256284` --numprocesses=1 ` . Beware: any args you pass * replace* the path (hatch
257285` {args:test/integ} ` falls back to the global ` testpaths = ["test"] ` ), so
0 commit comments