Common questions and gotchas when using OvoScope.
No. MiniCroft runs the skill manager and intent pipeline in-process on a
FakeBus — there is no WebSocket server, no PulseAudio/audio stack, and no
network access required for record/run/diff/validate. See
docs/index.md for what the in-process harness does and does
not cover, and docs/phal.md / docs/audio-testing.md
for the separate PHAL and audio harnesses.
Only the keys you specify in expected.data and expected.context are
checked — extra keys in the received message are ignored. If a message you
didn't list is showing up as unexpected, check ignore_messages (see
docs/end2end-test.md) — some message types (e.g.
speak, ovos.skills.settings_changed) are noisy or non-deterministic and
are commonly filtered out.
Increase --timeout on ovoscope record, or the timeout kwarg on
End2EndTest.from_message. If the skill under test depends on plugins that
take time to warm up (e.g. ovos-m2v-pipeline syncing its label index),
see m2v_warmup in docs/intent-cases.md for how
ovoscope.intent_cases handles that deterministically.
Pass it via extra_skills={"my-skill.test": MySkillClass} to MiniCroft /
get_minicroft() instead of skill_ids. See
docs/minicroft.md.
Pass secondary_langs=[...] to get_minicroft() so Adapt/Padatious
register vocab for each locale. See "Multilingual Testing" in
docs/minicroft.md.
Open an issue on GitHub.