Reo.Core.Xunit.IntegrationTesting
6.0.31579
See the version list below for details.
dotnet add package Reo.Core.Xunit.IntegrationTesting --version 6.0.31579
NuGet\Install-Package Reo.Core.Xunit.IntegrationTesting -Version 6.0.31579
<PackageReference Include="Reo.Core.Xunit.IntegrationTesting" Version="6.0.31579" />
paket add Reo.Core.Xunit.IntegrationTesting --version 6.0.31579
#r "nuget: Reo.Core.Xunit.IntegrationTesting, 6.0.31579"
// Install Reo.Core.Xunit.IntegrationTesting as a Cake Addin
#addin nuget:?package=Reo.Core.Xunit.IntegrationTesting&version=6.0.31579
// Install Reo.Core.Xunit.IntegrationTesting as a Cake Tool
#tool nuget:?package=Reo.Core.Xunit.IntegrationTesting&version=6.0.31579
Xunit.IntegrationTesting
Расширение фреймворка xUnit для выполнения интеграционного тестирования
Использование
Первоначальная настройка
В проекте с тестами необходимо определить файл со следующим содержимым:
using Reo.Core.IntegrationTesting.TestFramework.Mongo;
using Reo.Core.IntegrationTesting.TestFramework.Postgres;
using Reo.Core.Xunit.IntegrationTesting.Attributes;
[assembly:EnableIntegrationTestingFramework]
[assembly:RaiseContainer<PostgresTestContainer<TestingContext>>]
[assembly:RaiseContainer<MongoTestContainer>]
Атрибут EnableIntegrationTestingFramework
должен быть указан в обязательном порядке. Он указывает xUnit
, что необходимо использовать расширенный тестовый фреймворк вместо обычного.
Атрибут RaiseContainer
нужен для того, чтобы при запуске тестов запустился контейнер указанного типа. В прошлом контейнеры запускались при старте каждого тестового класса, теперь запускается единственный контейнер для всех тестов примерно сразу после загрузки сборки.
На данный момент реализованы четыре контейнера (их можно найти в пакете Reo.Core.IntegrationTesting
):
- Postgres (PostgresTestContainer{TDbContext} и PostgresFixture{TDbContext})
- Mongo (MongoTestContainer и MongoFixture)
- Redis (RedisTestContainer и RedisFixture)
- Elastic (ElasticTestContainer и ElasticFixture)
Написание тестов
В тестовом классе необходимо указать какую фикстуру вы хотите использовать.
CollectionFixture
Фикстура создается один раз на запускаемую пачку тестов
// CollectionDefinition.cs
[CollectionDefinition(nameof(PostgresDefinition))]
public sealed class PostgresDefinition : ICollectionFixture<PostgresFixture<TestingDbContext>>
{ }
// TestClass.cs
[Collection(nameof(PostgresDefinition))]
public sealed class TestClass
{
private readonly PostgresFixture<TestingDbContext> _fixture;
public TestClass(PostgresFixture<TestingDbContext> fixture)
{
_fixture = fixture;
}
[Fact]
public void Verify()
{
// ...
}
}
К сожалению, CollectionDefinition
необходимо описывать в каждой сборке, иначе xUnit
их не увидит (см. документацию xUnit)
ClassFixture
Фикстура создается один раз на запускаемый тестовый класс
public sealed class TestClass : IClassFixture<MongoFixture>
{
private readonly MongoFixture _fixture;
public TestClass(MongoFixture fixture)
{
_fixture = fixture;
}
[Fact]
public void Verify()
{
// ...
}
}
И то, и другое
xUnit
не запрещает внедрять IClassFixture
и ICollectionFixture
одновременно:
[Collection(nameof(PostgresDefinition))]
public sealed class TestClass : IClassFixture<MongoFixture>
{
// ...
public TestClass(PostgresFixture<TestingDbContext> postgresFixture, MongoFixture mongoFixture)
{
// ...
}
// ...
}
Регистрация артефактов из фикстуры в AutoMocker
При внедрении фикстуры используйте готовые методы расширения:
public sealed class TestClass :
IClassFixture<PostgresFixture<TestingDbContext>>,
IClassFixture<MongoFixture>,
IClassFixture<ElasticFixture>,
IClassFixture<RedisFixture>
{
private readonly AutoMocker _mocker = new();
// ...
public TestClass(
PostgresFixture<TestingDbContext> postgresFixture,
MongoFixture mongoFixture,
ElasticFixture elasticFixture,
RedisFixture redisFixture)
{
// ...
_mocker
.SetupPostgres(postgresFixture)
.SetupMongo(mongoFixture)
.SetupElastic(elasticFixture)
.SetupRedis(redisFixture);
}
// ...
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 7.0.0)
- xunit.extensibility.execution (>= 2.7.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Reo.Core.Xunit.IntegrationTesting:
Package | Downloads |
---|---|
Reo.Core.IntegrationTesting
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
6.0.31848 | 29 | 6/15/2024 |
6.0.31847 | 29 | 6/15/2024 |
6.0.31846 | 31 | 6/14/2024 |
6.0.31845 | 38 | 6/14/2024 |
6.0.31844 | 33 | 6/14/2024 |
6.0.31843 | 30 | 6/14/2024 |
6.0.31842 | 34 | 6/14/2024 |
6.0.31841 | 30 | 6/13/2024 |
6.0.31840 | 31 | 6/13/2024 |
6.0.31839 | 33 | 6/13/2024 |
6.0.31838 | 30 | 6/13/2024 |
6.0.31837 | 32 | 6/13/2024 |
6.0.31836 | 31 | 6/13/2024 |
6.0.31835 | 31 | 6/13/2024 |
6.0.31834 | 45 | 6/13/2024 |
6.0.31833 | 60 | 6/12/2024 |
6.0.31832 | 57 | 6/12/2024 |
6.0.31831 | 68 | 6/11/2024 |
6.0.31830 | 66 | 6/11/2024 |
6.0.31829 | 65 | 6/11/2024 |
6.0.31828 | 67 | 6/11/2024 |
6.0.31827 | 70 | 6/11/2024 |
6.0.31826 | 65 | 6/11/2024 |
6.0.31825 | 74 | 6/10/2024 |
6.0.31824 | 67 | 6/10/2024 |
6.0.31823 | 68 | 6/10/2024 |
6.0.31822 | 69 | 6/10/2024 |
6.0.31821 | 68 | 6/10/2024 |
6.0.31820 | 69 | 6/10/2024 |
6.0.31819 | 70 | 6/10/2024 |
6.0.31818 | 65 | 6/10/2024 |
6.0.31817 | 70 | 6/7/2024 |
6.0.31816 | 71 | 6/7/2024 |
6.0.31815 | 75 | 6/7/2024 |
6.0.31814 | 80 | 6/6/2024 |
6.0.31813 | 78 | 6/6/2024 |
6.0.31812 | 83 | 6/6/2024 |
6.0.31811 | 77 | 6/6/2024 |
6.0.31810 | 82 | 6/6/2024 |
6.0.31809 | 81 | 6/6/2024 |
6.0.31808 | 77 | 6/6/2024 |
6.0.31807 | 80 | 6/5/2024 |
6.0.31806 | 89 | 6/4/2024 |
6.0.31805 | 82 | 6/4/2024 |
6.0.31804 | 80 | 6/4/2024 |
6.0.31803 | 82 | 6/4/2024 |
6.0.31802 | 82 | 6/4/2024 |
6.0.31801 | 86 | 6/3/2024 |
6.0.31800 | 82 | 6/3/2024 |
6.0.31799 | 74 | 6/3/2024 |
6.0.31798 | 75 | 6/3/2024 |
6.0.31797 | 66 | 6/3/2024 |
6.0.31796 | 81 | 6/3/2024 |
6.0.31795 | 88 | 6/3/2024 |
6.0.31794 | 99 | 5/31/2024 |
6.0.31793 | 97 | 5/30/2024 |
6.0.31792 | 92 | 5/30/2024 |
6.0.31791 | 89 | 5/30/2024 |
6.0.31790 | 86 | 5/30/2024 |
6.0.31789 | 87 | 5/30/2024 |
6.0.31788 | 91 | 5/30/2024 |
6.0.31787 | 92 | 5/29/2024 |
6.0.31786 | 84 | 5/29/2024 |
6.0.31785 | 88 | 5/29/2024 |
6.0.31784 | 79 | 5/29/2024 |
6.0.31783 | 92 | 5/27/2024 |
6.0.31782 | 83 | 5/27/2024 |
6.0.31781 | 94 | 5/26/2024 |
6.0.31780 | 88 | 5/24/2024 |
6.0.31779 | 91 | 5/22/2024 |
6.0.31778 | 98 | 5/22/2024 |
6.0.31777 | 85 | 5/22/2024 |
6.0.31776 | 91 | 5/22/2024 |
6.0.31775 | 90 | 5/22/2024 |
6.0.31774 | 81 | 5/21/2024 |
6.0.31773 | 81 | 5/21/2024 |
6.0.31772 | 93 | 5/20/2024 |
6.0.31771 | 89 | 5/16/2024 |
6.0.31770 | 79 | 5/15/2024 |
6.0.31769 | 89 | 5/15/2024 |
6.0.31768 | 92 | 5/15/2024 |
6.0.31767 | 77 | 5/15/2024 |
6.0.31766 | 93 | 5/15/2024 |
6.0.31764 | 84 | 5/14/2024 |
6.0.31763 | 79 | 5/14/2024 |
6.0.31762 | 78 | 5/14/2024 |
6.0.31761 | 85 | 5/14/2024 |
6.0.31760 | 88 | 5/14/2024 |
6.0.31759 | 91 | 5/13/2024 |
6.0.31758 | 89 | 5/13/2024 |
6.0.31757 | 79 | 5/13/2024 |
6.0.31756 | 81 | 5/12/2024 |
6.0.31755 | 83 | 5/12/2024 |
6.0.31754 | 89 | 5/12/2024 |
6.0.31753 | 94 | 5/8/2024 |
6.0.31751 | 98 | 5/7/2024 |
6.0.31749 | 97 | 5/6/2024 |
6.0.31748 | 101 | 5/6/2024 |
6.0.31747 | 105 | 5/6/2024 |
6.0.31746 | 67 | 5/3/2024 |
6.0.31745 | 54 | 5/3/2024 |
6.0.31744 | 56 | 5/3/2024 |
6.0.31743 | 54 | 5/2/2024 |
6.0.31742 | 99 | 4/27/2024 |
6.0.31741 | 97 | 4/27/2024 |
6.0.31740 | 99 | 4/26/2024 |
6.0.31739 | 92 | 4/26/2024 |
6.0.31738 | 107 | 4/26/2024 |
6.0.31737 | 107 | 4/26/2024 |
6.0.31735 | 104 | 4/25/2024 |
6.0.31734 | 92 | 4/25/2024 |
6.0.31733 | 91 | 4/25/2024 |
6.0.31732 | 94 | 4/25/2024 |
6.0.31731 | 82 | 4/25/2024 |
6.0.31730 | 99 | 4/24/2024 |
6.0.31729 | 90 | 4/24/2024 |
6.0.31728 | 95 | 4/24/2024 |
6.0.31727 | 91 | 4/23/2024 |
6.0.31726 | 77 | 4/23/2024 |
6.0.31725 | 91 | 4/23/2024 |
6.0.31724 | 93 | 4/22/2024 |
6.0.31723 | 93 | 4/22/2024 |
6.0.31722 | 100 | 4/22/2024 |
6.0.31721 | 98 | 4/22/2024 |
6.0.31720 | 91 | 4/22/2024 |
6.0.31719 | 89 | 4/22/2024 |
6.0.31718 | 91 | 4/22/2024 |
6.0.31717 | 93 | 4/22/2024 |
6.0.31716 | 89 | 4/22/2024 |
6.0.31715 | 104 | 4/20/2024 |
6.0.31714 | 103 | 4/19/2024 |
6.0.31713 | 81 | 4/19/2024 |
6.0.31712 | 79 | 4/19/2024 |
6.0.31711 | 95 | 4/19/2024 |
6.0.31710 | 81 | 4/19/2024 |
6.0.31709 | 89 | 4/19/2024 |
6.0.31708 | 90 | 4/18/2024 |
6.0.31707 | 85 | 4/18/2024 |
6.0.31706 | 83 | 4/18/2024 |
6.0.31705 | 82 | 4/17/2024 |
6.0.31704 | 103 | 4/17/2024 |
6.0.31703 | 91 | 4/17/2024 |
6.0.31702 | 92 | 4/17/2024 |
6.0.31701 | 88 | 4/16/2024 |
6.0.31700 | 86 | 4/16/2024 |
6.0.31699 | 88 | 4/16/2024 |
6.0.31698 | 81 | 4/16/2024 |
6.0.31697 | 81 | 4/16/2024 |
6.0.31696 | 80 | 4/16/2024 |
6.0.31695 | 76 | 4/16/2024 |
6.0.31694 | 82 | 4/16/2024 |
6.0.31693 | 82 | 4/16/2024 |
6.0.31692 | 79 | 4/15/2024 |
6.0.31691 | 80 | 4/15/2024 |
6.0.31690 | 91 | 4/15/2024 |
6.0.31688 | 98 | 4/12/2024 |
6.0.31687 | 76 | 4/12/2024 |
6.0.31686 | 80 | 4/12/2024 |
6.0.31685 | 79 | 4/12/2024 |
6.0.31684 | 78 | 4/11/2024 |
6.0.31683 | 88 | 4/10/2024 |
6.0.31682 | 81 | 4/10/2024 |
6.0.31681 | 80 | 4/10/2024 |
6.0.31680 | 85 | 4/10/2024 |
6.0.31679 | 76 | 4/10/2024 |
6.0.31678 | 77 | 4/10/2024 |
6.0.31677 | 89 | 4/9/2024 |
6.0.31676 | 93 | 4/9/2024 |
6.0.31675 | 90 | 4/8/2024 |
6.0.31674 | 97 | 4/8/2024 |
6.0.31673 | 99 | 4/8/2024 |
6.0.31672 | 78 | 4/8/2024 |
6.0.31671 | 78 | 4/8/2024 |
6.0.31670 | 88 | 4/8/2024 |
6.0.31669 | 85 | 4/8/2024 |
6.0.31668 | 93 | 4/5/2024 |
6.0.31667 | 94 | 4/5/2024 |
6.0.31666 | 102 | 4/3/2024 |
6.0.31665 | 93 | 4/3/2024 |
6.0.31663 | 97 | 4/3/2024 |
6.0.31662 | 89 | 4/3/2024 |
6.0.31661 | 93 | 4/2/2024 |
6.0.31660 | 94 | 4/1/2024 |
6.0.31659 | 85 | 4/1/2024 |
6.0.31658 | 82 | 4/1/2024 |
6.0.31657 | 88 | 3/29/2024 |
6.0.31656 | 82 | 3/29/2024 |
6.0.31655 | 85 | 3/29/2024 |
6.0.31654 | 93 | 3/29/2024 |
6.0.31653 | 78 | 3/29/2024 |
6.0.31651 | 73 | 3/29/2024 |
6.0.31650 | 78 | 3/29/2024 |
6.0.31649 | 79 | 3/29/2024 |
6.0.31648 | 79 | 3/29/2024 |
6.0.31647 | 77 | 3/29/2024 |
6.0.31646 | 99 | 3/29/2024 |
6.0.31645 | 82 | 3/28/2024 |
6.0.31644 | 84 | 3/28/2024 |
6.0.31643 | 90 | 3/28/2024 |
6.0.31642 | 85 | 3/28/2024 |
6.0.31639 | 89 | 3/28/2024 |
6.0.31638 | 74 | 3/28/2024 |
6.0.31637 | 98 | 3/27/2024 |
6.0.31636 | 120 | 3/27/2024 |
6.0.31631 | 88 | 3/27/2024 |
6.0.31626 | 95 | 3/26/2024 |
6.0.31625 | 102 | 3/25/2024 |
6.0.31618 | 100 | 3/20/2024 |
6.0.31617 | 91 | 3/20/2024 |
6.0.31616 | 103 | 3/20/2024 |
6.0.31615 | 91 | 3/20/2024 |
6.0.31614 | 111 | 3/19/2024 |
6.0.31613 | 106 | 3/18/2024 |
6.0.31612 | 116 | 3/18/2024 |
6.0.31611 | 117 | 3/18/2024 |
6.0.31610 | 110 | 3/18/2024 |
6.0.31609 | 103 | 3/15/2024 |
6.0.31608 | 103 | 3/14/2024 |
6.0.31607 | 115 | 3/13/2024 |
6.0.31606 | 103 | 3/13/2024 |
6.0.31605 | 101 | 3/13/2024 |
6.0.31604 | 99 | 3/12/2024 |
6.0.31603 | 98 | 3/12/2024 |
6.0.31602 | 129 | 3/7/2024 |
6.0.31601 | 105 | 3/7/2024 |
6.0.31600 | 114 | 3/7/2024 |
6.0.31599 | 109 | 3/6/2024 |
6.0.31598 | 100 | 3/6/2024 |
6.0.31597 | 105 | 3/6/2024 |
6.0.31596 | 103 | 3/6/2024 |
6.0.31595 | 114 | 3/6/2024 |
6.0.31594 | 103 | 3/4/2024 |
6.0.31593 | 91 | 3/4/2024 |
6.0.31590 | 99 | 3/1/2024 |
6.0.31589 | 94 | 3/1/2024 |
6.0.31588 | 98 | 3/1/2024 |
6.0.31587 | 88 | 3/1/2024 |
6.0.31586 | 97 | 3/1/2024 |
6.0.31585 | 86 | 3/1/2024 |
6.0.31584 | 98 | 3/1/2024 |
6.0.31583 | 89 | 3/1/2024 |
6.0.31582 | 100 | 2/29/2024 |
6.0.31581 | 92 | 2/29/2024 |
6.0.31580 | 98 | 2/29/2024 |
6.0.31579 | 103 | 2/29/2024 |
6.0.31578 | 101 | 2/29/2024 |
6.0.31577 | 96 | 2/29/2024 |
6.0.31576 | 101 | 2/29/2024 |
6.0.31575 | 100 | 2/28/2024 |