Вывод результатов тестирования устройства

Я искал инструмент для тестирования единиц измерения, и я нашел подходящий вариант: NUnit, и я думаю, что это хорошо, но моя проблема в том, что этот инструмент показывает только результат метода тестирования (pass или fail), и мне нужно показать не только пропуск или отказ выход. Как я могу показать вывод с помощью NUnit или если там еще один инструмент для тестирования единиц, это также хорошо? Если его не поддерживать, пожалуйста, предложите мне, как я могу его решить.

Все идеи приветствуются

Ответ 1

В нижней строке NUnit вы можете нажать "Текстовый вывод" и отобразить все отладочные и консольные выходы.

Ответ 2

Сопровождение вывода System.Console будет работать для NUnit, но это не самый лучший вариант.

Для прохождения тестов вам не нужно будет просматривать вывод консоли, чтобы проверить, прошли тесты. Если да, вы делаете это неправильно. Тесты должны быть автоматизированы и повторяемы без вмешательства человека. Проверка вручную не масштабируется и создает ложные срабатывания.

С другой стороны, использование консольного вывода для отказоустойчивых тестов полезно, но оно будет предоставлять только информацию, которая в противном случае могла бы быть получена из прикрепления отладчика. Это потребует больших усилий, чтобы добавить консольное ведение журнала в ваше приложение для небольшой выгоды.

Вместо этого убедитесь, что ваши сообщения об ошибках имеют смысл. При написании тестов убедитесь, что ваши утверждения явны. Всегда старайтесь использовать утверждение, которое близко соответствует объекту, который вы утверждаете, и предоставить сообщение об ошибке, объясняющее, почему тест важен.

Например:

// very bad
Assert.IsTrue( collection.Count == 23 );

Вышеприведенное утверждение не оказывает существенной помощи, когда тест терпит неудачу. Поскольку NUnit форматирует вывод утверждений, это утверждение не поможет вам, поскольку оно будет указывать что-то вроде "Ожидание <True> , но было <False> ".

Более подходящий аргумент обеспечит более значимые тестовые сбои.

// much better
Assert.AreEqual(23, collection.Count, 
               "There should be a minimum of 23 items by default.");

Это обеспечивает гораздо более значимое сообщение об ошибке: "Ожидание < 23 > , но было < 0 > : по умолчанию должно быть не менее 23 элементов".

Ответ 3

Это зависит от того, где вы хотите выводить данные из теста. Я полагаю, вы упомянули что-то другое из File, Log, Console, Debug вывода. В качестве альтернативы NUnit позволяют выводить любое сообщение в поток выходных данных регулярных тестов, просто используйте следующие методы утилиты:

Для успешного тестирования

Assert.Pass( string message, object[] parms );

В случае неудачного теста

Assert.Fail( string message, object[] parms );

Подробнее см. здесь

Ответ 4

Это сообщение является loooooong после того, как был задан вопрос, но он хотел прослушивать. Да, вы можете много сделать в тестах unit/integration и, вероятно, сделать большую часть того, что вам нужно. Итак, я согласен, сделайте как можно больше в своих методах тестирования.

Но иногда предоставление некоторого результата полезно. Особенно, если вам нужно дополнительно проверить результаты и что проверка не может быть выполнена с помощью unit test. Подумайте о внешней системе, в которой ваша среда разработки/тестирования не имеет или имеет ограниченный доступ.

В качестве примера предположим, что вы нажимаете webapi, чтобы СОЗДАТЬ заявку, и ответ - это новый номер претензии. Но api не предоставляет методы для получения претензии, и вам нужно проверить некоторые другие данные, которые были созданы при создании вызова webapi. В этом случае вы можете использовать выводимые номера претензий для ручного контроля удаленной системы.

FWIW