Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Статусы тестов в формате тестовых фреймворков (JUnit, NUnit и т.п.) #248

Closed
artbear opened this issue Aug 19, 2014 · 12 comments

Comments

@artbear
Copy link
Member

artbear commented Aug 19, 2014

Статусы тестов в формате тестовых фреймворков (JUnit, NUnit и т.п.)

  • Failed - отдельные статусы для падения после проверки (по assert)
  • Broken - для падения из-за возникшего исключения
  • Pending показывает исключенные из запуска тесты (аннотация @ignore в JUnit)
  • Canceled — тесты, пропущенные в рантайме из-за падения предусловия (assume failure)
  • Passed - "зеленые" тесты (уже есть)

Статусы удобны для анализа результатов тестирования.

@ghost
Copy link

ghost commented Aug 25, 2014

меня очень волнует статус Pending - для менеджера продукта тесты которого сгенерированы на основе gherkin таким образом появляется прямая метрика оценки недотестированности приложения

@pumbaEO
Copy link
Contributor

pumbaEO commented Sep 16, 2014

Ну еще как пример Pending теста - это тесты использующие COM , при этом на linux платформе они будут всегда Failed, а с использованием Pending - можно понимать, что пропущены, а не упали.

@ghost
Copy link

ghost commented Sep 17, 2014

Я кстати как делать платформо-зависимые тесты так и не нашел ни в одной из спецификаций.
Везде стоит в основном что-то типа IF windows ELSEIF linux с помощью директив препроцессора

@artbear
Copy link
Member Author

artbear commented Feb 24, 2015

@ValeraS

Сейчас все ошибки выглядят одинаково, была ли это ошибка проверки или это какая-то не запланированная ошибка. Предлагается ввести две категории ошибок:
errors - не запланированные ошибки
failures - ошибки, возникшие при выполнении проверочных методов.

При формировании отчета в mxl для ошибок failures не выводить служебную информацию (имя модуля, строка модуля и т.д.), так как, в данном случае, эта информация не информативна.

ValeraS referenced this issue in ValeraS/xUnitFor1C Feb 24, 2015
@ValeraS
Copy link
Contributor

ValeraS commented Feb 25, 2015

Предлагаю для реализации функциональности статуса Pending(skip), добавить метод

ЮТест.ПропуститьТест(ПричинаПропуска);

Вызывать его из метода теста.

Для пропущенных тестов, в дереве тестов устанавливать состояние мЗначенияСостоянияТестов.НеРеализован?
Но при этом выводить отчет по ошибкам, с указанием пропущенных тестов.

Про статус Canceled, кажется он излишен. Например, в JUnit, в раннере по умолчанию, такие тесты обрабатываются как пропущенные(https://github.com/junit-team/junit/wiki/Assumptions-with-assume).

@artbear
Copy link
Member Author

artbear commented Feb 25, 2015

1 Canceled - заготовка на будущее, я написал, чтобы не забыть. у нас все равно нет предусловий :)

2 по ПропуститьТест согласен.

3

Для пропущенных тестов, в дереве тестов устанавливать состояние мЗначенияСостоянияТестов.НеРеализован?

Сейчас так и есть, состояние же ставится именно так.

4

Но при этом выводить отчет по ошибкам, с указанием пропущенных тестов.

Здесь не понял, поясни. сейчас пропущенные тесты указываются в хмл-файле как пропущенные/pending

@ValeraS
Copy link
Contributor

ValeraS commented Feb 25, 2015

  1. Сейчас, состояние НеРеализован устанавливается, если тестовый метод заявлен, а по факту отсутствует. В тестах есть места, где так сделано специально (например, есть тест где при формировании списка тестов на linux к именам методов добавляется суффикс). А в большинстве случаев, если тестовые методы в текущем режиме запуска должны пропускаться, то они просто не добавляются в список тестов.
    Предлагается, тесты, которые реализованы, но не должны выполнятся обозначать вызовом ПропуститьТест, и считать их выполненными со статусом Pending. А если отсутствует реализация, то просто пропускать тест (как сейчас и делается)
  2. При формировании отчета в xml, на текущий момент, указывается только два статуса passed и failure. Причем, не реализованные тесты отмечаются как пройденные успешно.

@artbear
Copy link
Member Author

artbear commented Feb 25, 2015

  1. Возможно, мы об одном.
    Предлагаю совместить оба варианта - тесты с вызовом ПропуститьТест получают статус Pending + тесты, у которых нет метода-реализации, также пропускаются и получают этот статус (как и сейчас).
  2. Когда выполнял предыдущую доработку для pending, я смотрел xsd-файл для JUnit XML, не увидел там варианта для записи количества pending в итоговые атрибуты. Плохо смотрел?

@ValeraS
Copy link
Contributor

ValeraS commented Feb 25, 2015

  1. Наверное о разном)) Состояния тестов в обоих случаях будет одинаковым, а статус результата выполнения, предлагаю делать только для явно указанных.
  2. там вроде skipped должен быть.

@artbear
Copy link
Member Author

artbear commented Feb 25, 2015

  1. Нет, тогда не соглашусь. Нужно совместить оба подхода, юзабилити наше все.

@ValeraS
Copy link
Contributor

ValeraS commented Feb 25, 2015

  1. Хорошо, тогда в xml тесты без реализации писать как skipped c сообщением "Отсутствует реализация тестового метода".

@artbear
Copy link
Member Author

artbear commented Feb 25, 2015

Со skipped в хмл согласен

@artbear artbear added this to the 2.7.2.0 milestone Feb 27, 2015
@artbear artbear self-assigned this Feb 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants