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

Вид: 31285|Ответ: 3

[Источник] .NET/C# использует модульные тесты Xunit

[Скопировать ссылку]
Опубликовано 22.01.2019 14:58:26 | | | |
Сейчас участвую. Инструменты тестирования в рамках Net-фреймворка в основном включают Nunit, встроенный MSTest и Xunit, и в этой статье кратко расскажут, как использовать XUnit — восходящую звезду VS.

Минимальное время выполнения, поддерживаемое xunit, составляет . NET 4.5.2, большинство из которых выше. Даже если вы сможете создать библиотеку классов 4.0, она всё равно будет работать как минимум на .NET 4.5.2. Подробные ссылки:https://github.com/xunit/xunit/issues/1817


Сначала я создал новый консольный проект на .NET 4.5.2 под названием: itsvse-test, а последняя версия xunit — 2.4.1, поэтому команда nuget следующая:

Каждая посылка лицензирована владельцем. NuGet не несёт ответственности за сторонние пакеты и не лицензирует их. Некоторые пакеты могут содержать зависимости, подлежащие другим лицензиям. Нажмите на URL исходного (исходного источника) пакета, чтобы определить зависимости.

Консольный хост Package Manager версии 4.7.0.5212

Введите «get-help NuGet», чтобы увидеть все доступные команды NuGet.

PM> Install-Package xunit -Версия 2.4.1


Предпринимаются попытки собрать и нацелиться на них». NETFramework, Version=v4.5.2" проекта "itsvse-test" о пакете "xunit.2.4.1"
Сбор информации о зависимости занимает 2,1 секунды
Пытаюсь разрешить зависимость пакета "xunit.2.4.1" с DependencyBehavior как "Самая низкая"
Разбор информации о зависимости занимает 0 мс
Операция разбора для установки пакета "xunit.2.4.1"
Разрешён процесс установки пакета "xunit.2.4.1"
Получить пакет "xunit 2.4.1" с сайта "cnblogs"
Получить пакет "xunit.abstractions 2.0.3" с сайта "cnblogs"
Получить пакет "xunit.analyzers 0.10.0" с сайта "cnblogs"
Получить пакет "xunit.assert 2.4.1" с сайта "cnblogs"
Получить пакет "xunit.core 2.4.1" с сайта "cnblogs"
Получить пакет "xunit.extensibility.core 2.4.1" с сайта "cnblogs"
Получить пакет "xunit.extensibility.execution 2.4.1" с сайта "cnblogs"
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  ПОЛУЧИТЬhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg116 мс
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117 мс
Установка xunit.abstractions версии 2.0.3.
Устанавливаю xunit 2.4.1.
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 мс
Установка xunit.core 2.4.1.
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 мс
Установка xunit.assert 2.4.1.
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 мс
Установка xunit.extensibility.core 2.4.1.
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 мс
Установка xunit.analyzers 0.10.0.
  ХОРОШОhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 мс
Установка xunit.extensibility.execution 2.4.1.
Добавление пакета "xunit.abstractions.2.0.3" в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.abstractions.2.0.3" добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Добавлен пакет "xunit.abstractions.2.0.3" в "packages.config"
Успешно установлен "xunit.abstractions 2.0.3" в itsvse-test
Добавление пакета только набора инструментов "xunit.analyzers.0.10.0" в "itsvse-test"
Добавление пакета "xunit.analyzers.0.10.0" в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.analyzers.0.10.0" был добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Добавлен пакет "xunit.analyzers.0.10.0" в "packages.config"
Скрипт-файл "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1"
«xunit.analyzers 0.10.0» успешно установлен для теста itsvse.
Добавление пакета "xunit.assert.2.4.1" в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.assert.2.4.1" был добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Добавлен пакет "xunit.assert.2.4.1" в "packages.config"
"xunit.assert 2.4.1" успешно установлен для itsvse-test
Добавление пакета "xunit.extensibility.core.2.4.1" в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.extensibility.core.2.4.1" был добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Добавлен пакет "xunit.extensibility.core.2.4.1" в "packages.config"
"xunit.extensibility.core 2.4.1" успешно установлен для теста itsvse.
Добавление пакета "xunit.extensibility.execution.2.4.1" в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.extensibility.execution.2.4.1" был добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Добавлен пакет "xunit.extensibility.execution.2.4.1" в "packages.config"
"xunit.extensibility.execution 2.4.1" успешно установлен для itsvse-test
Добавление пакета "xunit.core.2.4.1" в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.core.2.4.1" был добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Добавлен пакет "xunit.core.2.4.1" в "packages.config"
«xunit.core 2.4.1» успешно установлен для теста itsvse
Добавление пакета "xunit.2.4.1" с единственными зависимостями для проекции "itsvse-test".
Пакет "xunit.2.4.1" добавляется в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.2.4.1" был добавлен в папку "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.2.4.1" был добавлен в "packages.config"
"xunit 2.4.1" успешно установлен для теста itsvse
Нугету потребовалось 5,51 секунды на выполнение.
Время: 00:00:07.7781544
PM>
Установите пакеты плагинов: xunit.runner.console (опущен в этой статье) и xunit.runner.visualstudio

где xUnit — это фреймворк,А xunit.runner.visualstudio — это пакет плагинов VS, чтобы мы могли легко отладить в VS.Установку xunit.runner.console также можно отладить в CMDНо если поддерживать только это, думаю, мало кто будет использовать этот фреймворк, ведь способ ввода команд серьёзно снижает качество Visual Studio, поэтому я не буду объяснять это здесь.

Здесь мы устанавливаем только пакет плагина xunit.runner.visualstudio, кликаем правой кнопкой мыши по проекту в Solution Explorer и выбираем Manage NuGet Packages. Найдите (и установите) пакет с названием xunit.runner.visualstudio:



Убедитесь, что браузер тестов виден (перейдите в окно Test > > Test Explorer). Каждый раз, когда проект создается, раннер обнаруживает модульные тесты в проекте. После периода исследования вы должны увидеть список выявленных тестов:



Отредактируйте файл программы и измените следующий код:

Нажмите на ссылку в окне Run All, и вы должны увидеть обновление результата в окне Test Explorer при запуске теста:



Можно нажать на неудачный тест, чтобы увидеть сообщение о неудаче и трассировку стека. Вы можете кликнуть по линии трассировки стека, чтобы сразу перейти к неисправной строке кода.

(Конец)





Предыдущий:Будильник Sleep Your Sister v4.6.1 Профессиональная платная премиум-китайская версия
Следующий:Сегодняшние заметки по изучению C#
 Хозяин| Опубликовано 22.01.2019 15:19:24 |
Xunit не нужно тегировать тестовые классы

xUnit поддерживает как свойства [Факт], так и [Теория]. Как видно из кода, [Fact] похож на наш код вызова, а [Theory] с InlineData может тестировать несколько наборов параметров напрямую в одном методе.

 Хозяин| Опубликовано 22.01.2019 15:31:55 |
Тестирование аномалий

Xunit не помечает захваты исключений через Attributes, а напрямую использует функцию утверждения Assert.Throws для проверки исключений.

    общественный класс ТестКласс 1
    {
        [Факт]
        Публичный тест недействительностиИсключение()
        {
            <InvalidOperationException>Assert.Throws(() => operation());
        }

        Операция пустоты()
        {
            бросить новый InvalidOperationException();
        }
    }



Измените название тестового случая:

     [Fact(DisplayName = «Max Function Test»)]



Пропустить тестовые случаи:

     [fact(skip="рефакторинг неполный")]



Группировка:

     [Черта («Группа», «Категория»)]
 Хозяин| Опубликовано 22.01.2019 15:37:28 |
Во многих случаях мы не хотим, чтобы юнит-тесты влияли на содержимое базы данных, и иногда наши юнит-тесты проходят очень медленно из-за воздействия базы данных, поэтому мы часто хотим изолировать часть сохранения и не сохранять данные при проведении модульных тестов. Такой вид изоляции мы обычно используем абстракцию, то есть используем интерфейсы или абстрактные классы для выделения слоя персистентности, а затем используем макеты для моделирования соответствующих интерфейсов или абстрактные классы для завершения соответствующих классов персистентности. MoQ — один из таких Mock-фреймворков, MoQ использует C# 3.0, который проще в использовании, чем NMock, и это сильно типизированный способ, доступен исходный код и dllВход по гиперссылке виден.Скачать. Последний релиз MoQ сейчас — версия 3.1, а версия 4.0 всё ещё находится в бета-версии.
https://www.cnblogs.com/catcher1994/p/5498530.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com