Корректно: упражнение «кошка – собака». Обратите внимание: в пунктуации короткое и длинное тире функционально не различаются, есть два знака – дефис и тире.
Слитное написание правильно.
В правилах русской пунктуации не существует понятий «длинное тире» и «среднее тире». Есть просто знак тире, его длина никак не оговаривается и обычно зависит от типа шрифта.