Перейти к содержимому

Фотография

Visual Studio Test пара вопросов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 tab15

tab15

    Активный участник

  • Members
  • PipPip
  • 128 сообщений

Отправлено 05 февраля 2014 - 13:48

Здравствуйте.

 

При написании тестов при помощи Visual Studio Test Framework возникло пару вопросов:

 

1. Есть ли в VS какой-нибудь стандартный класс типа ErrorCollector в jUnit? Необходимо, что бы тест записал информацию об ошибке, а тестирование продолжалось дальше. Стандартные Assert'ы, разумеется, тест останавливают после ошибки.

2. Есть ли возможность выписвыать информацию в консоль. Стандартный Debug.WriteLine() и Trace.WriteLine() не совсем подходят, т.к. тесты запускаются на удаленном сервере при помощи Jenkins, а каждый раз заглядывать в .trx не совсем удобно.

 

Заранее спасибо.


  • 0

#2 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 05 февраля 2014 - 14:32

1. Не встречал. Всегда легко написать собственный коллектор, который будет обнуляться в [TestInitialize], а в конце теста будет один Assert в зависимости от количества накопленных ошибок. Сами ошибки можно выдавать в текстовый лог с оформлением, по которому их легко находить.

2. Вывод в консоль (в т. ч. через System.Console) весь перенаправляется в .trx.

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

 

Например:

public class Log
{
    static int errorCounter;
    static List<TextWriter> loggers = new List<TextWriter>(); // сюда можно добавить хоть консоль, хоть файловые стримы
    
    // ...

    public static Error(string errorText)
    {
        errorCounter++;
        postToAllLoggers(errorText);
    }

    // ...
}

  • 1

#3 tab15

tab15

    Активный участник

  • Members
  • PipPip
  • 128 сообщений

Отправлено 06 февраля 2014 - 08:46

 

1. Не встречал. Всегда легко написать собственный коллектор, который будет обнуляться в [TestInitialize], а в конце теста будет один Assert в зависимости от количества накопленных ошибок. Сами ошибки можно выдавать в текстовый лог с оформлением, по которому их легко находить.

2. Вывод в консоль (в т. ч. через System.Console) весь перенаправляется в .trx.

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

Спасибо за ответ.

На счет 1. так и собираюсь поступить. Просто хотелось узнать не буду ли изобретать велосипед

2. Это для удобства. В Jenkins, просто немного удобнее бы было открыть тест который не прошел, тут же посмотреть stacktrace и что нибудь из консоли. Но ничего придется так справлятся :)


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных