Прервать ExUnit на первом тесте, который не проходит - PullRequest
0 голосов
/ 23 мая 2018

В Ruby, в частности, в RSpec, вы можете указать исполнителю теста прервать первый тест, который не проходит под флагом командной строки --fail-fast.Это очень помогает не тратить время и не терять фокус при исправлении большого количества тестов подряд, например, при разработке на основе тестов или на основе поведения.

Теперь на Elixir с ExUnit я ищуспособ сделать именно это.Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Это не имеет особого смысла, поскольку тесты в Elixir: а) должны выполняться невероятно быстро и б) в большинстве случаев должны выполняться асинхронно.Немедленное завершение набора тестов при неудачном тесте является анти-паттерном, и поэтому ExUnit авторам это не разрешено.

У каждого по-прежнему есть возможность отстрелить свою собственную ногу: просто реализовать собственный обработчик дляEventManager и уничтожить все приложение при событии «сбой теста».


Для BDD предпочтительно использовать tags, запуск набора тестов с включенной только этой функцией.Таким образом, вы сможете в любое время в будущем запускать тесты для каждой функции.

Кроме того, в качестве крайней меры можно запустить конкретный случай, только передав имя файла в mix test и /или только конкретный тест, передавая имя файла с двоеточием и номером строки.

0 голосов
/ 23 мая 2018

К сожалению, (насколько мне известно) такой флаг не реализован .

Тем не менее, вы можете запустить один тест по

mix test path/to/testfile.exs:12

, где 12 - номер строки теста.

Надеюсь, что это поможет!

...