python data_error ai_generated true

snapshot_assertion_failed: Snapshot 'test_render' does not match. Received value does not match the stored snapshot. Use --snapshot-update to regenerate.

ID: python/pytest-snapshot-mismatch

Also available as: JSON · Markdown · 中文
80%Fix Rate
85%Confidence
0Evidence
2025-10-25First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
0.9 active

Root Cause

snapshot testing (pytest-snapshot, syrupy, snapshottest) compares output to a stored file; any change in output (intentional or not) causes a mismatch.

generic

中文

快照测试(pytest-snapshot、syrupy、snapshottest)将输出与存储文件比较;输出任何变化(有意或无意)都会导致不匹配。

Workarounds

  1. 95% success
    pytest tests/test_render.py -k test_render --snapshot-details
    # review the diff, then
    pytest --snapshot-update tests/test_render.py
  2. 90% success
    def sanitize(output):
        output.pop('timestamp', None)
        output['id'] = '<id>'
        return output
    
    def test_render(snapshot):
        snapshot.assert_match(sanitize(render()), 'render.json')

Dead Ends

Common approaches that don't work:

  1. 90% fail

    Accepts whatever the code currently produces, including regressions; snapshots become rubber stamps.

  2. 85% fail

    Next run recreates it from current (possibly buggy) output, losing the historical baseline.

  3. 80% fail

    Hides the diff and prevents catching real regressions; xfail state tends to linger.