Как пропустить определенные тесты с Test :: Unit - PullRequest
9 голосов
/ 28 мая 2010

В одном из моих проектов мне нужно сотрудничать с несколькими бэкэнд-системами. Некоторым из них в некоторой степени не хватает документации, и отчасти поэтому у меня есть некоторый тестовый код, который взаимодействует с некоторыми тестовыми серверами, просто чтобы увидеть, что все работает, как ожидалось. Однако доступ к этим серверам довольно медленный, и поэтому я не хочу запускать эти тесты каждый раз, когда запускаю свой набор тестов.

Мой вопрос: как справиться с ситуацией, когда вы хотите пропустить определенные тесты? В настоящее время я использую переменную окружения 'BACKEND_TEST' и условный оператор, который проверяет, установлена ​​ли переменная для каждого теста, который я хотел бы пропустить. Но иногда я хотел бы пропустить все тесты в тестовом файле, не добавляя дополнительную строку в начало каждого теста.

Тестов, которые должны взаимодействовать с тестовыми серверами, немного, поскольку я использую flexmock в других ситуациях. Однако нельзя издеваться над реальностью.

Как видно из названия этого вопроса, я использую Test :: Unit. Кроме того, если это имеет какое-либо значение, проект является проектом Rails.

Ответы [ 2 ]

8 голосов
/ 03 апреля 2014

Функции, упомянутые в предыдущем ответе, включают метод omit() и omit_if()

def test_omission
  omit('Reason')
  # Not reached here
end

И

def test_omission
  omit_if("".empty?)
  # Not reached here
end

От: http://test -unit.rubyforge.org / test-unit / ru / Test / Unit / TestCaseOmissionSupport.html # omit-instance_method

8 голосов
/ 31 мая 2010

Новые возможности тестового блока 2.x предполагают, что тестовый блок 2.x (версия гема, а не стандартная библиотека ruby ​​1.8) позволяет вам пропустить тесты.

...