Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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> Инсталационен пакет xunit -версия 2.4.1


Правят се опити за събиране и насочване на цели". NETFramework, Version=v4.5.2" на проекта "itsvse-test" относно пакета "xunit.2.4.1"
Събирането на информация за зависимости отнема 2.1 секунди
Опитвам се да разреша зависимостта на пакета "xunit.2.4.1" с DependencyBehavior като "Най-ниско"
Парсирането на информация за зависимости отнема 0 ms
Операция за парсиране за инсталиране на пакет "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 ms
  Добреhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117 ms
Инсталиране на xunit.abstractions 2.0.3.
Инсталирам xunit 2.4.1.
  Добреhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 ms
Инсталирам xunit.core 2.4.1.
  Добреhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 ms
Инсталирам xunit.assert 2.4.1.
  Добреhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 ms
Инсталиране на xunit.extensibility.core 2.4.1.
  Добреhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 ms
Инсталирам xunit.analyzers 0.10.0.
  Добреhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 ms
Инсталиране на 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-test
Добавяне на пакет "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-test
Добавяне на пакет "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). Всеки път, когато проектът се изгради, бегачът открива unit тестове в проекта. След период на проучване трябва да видите списък с открити тестове:



Редактирайте програмния файл и променете следния код:

Кликнете на линка в прозореца Run All и трябва да видите актуализацията на резултата в прозореца на Test Explorer, когато стартирате теста:



Можеш да кликнеш върху неуспешния тест, за да видиш съобщението за неуспеха и следата на стека. Можеш да кликнеш върху линията за проследяване на стека, за да отидеш директно на неуспешния ред код.

(Край)





Предишен:Будилник "Спи сестра си" v4.6.1 Професионално платена премиум китайска версия
Следващ:Днешните бележки за C#
 Хазяин| Публикувано в 22.01.2019 г. 15:19:24 ч. |
Xunit не е необходимо да тагва тестови класове

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

 Хазяин| Публикувано в 22.01.2019 г. 15:31:55 ч. |
Тестване на аномалии

Xunit не маркира изключения чрез Attributes, а директно използва функцията за assertion. Throws за валидиране на изключения.

    публичен клас ТестКлас 1
    {
        [Факт]
        public void testException()
        {
            <InvalidOperationException>Assert.Throws(() => operation());
        }

        Операция на празнота()
        {
            хвърля нов InvalidOperationException();
        }
    }



Променете името на тестовия случай:

     [Fact(DisplayName = "Max Function Test")]



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

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



Групиране:

     [Черта ("Група", "Категория")]
 Хазяин| Публикувано в 22.01.2019 г. 15:37:28 ч. |
В много случаи не искаме unit тестовете да влияят на съдържанието в базата данни, а понякога нашите unit тестове са много бавни заради въздействието на базата, затова често искаме да изолираме частта с персистентността и не запазваме данните при провеждане на unit тестове. Този вид изолация Обикновено използваме абстракция, тоест използваме интерфейси или абстрактни класове, за да изолираме слоя на персистентност, а след това използваме mocks за симулиране на съответните интерфейси или абстрактни класове, за да завършим съответните класове на персистентност. 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