![]() |
VOOZH | about |
dotnet add package Reo.Core.IntegrationTesting --version 10.0.222
NuGet\Install-Package Reo.Core.IntegrationTesting -Version 10.0.222
<PackageReference Include="Reo.Core.IntegrationTesting" Version="10.0.222" />
<PackageVersion Include="Reo.Core.IntegrationTesting" Version="10.0.222" />Directory.Packages.props
<PackageReference Include="Reo.Core.IntegrationTesting" />Project file
paket add Reo.Core.IntegrationTesting --version 10.0.222
#r "nuget: Reo.Core.IntegrationTesting, 10.0.222"
#:package Reo.Core.IntegrationTesting@10.0.222
#addin nuget:?package=Reo.Core.IntegrationTesting&version=10.0.222Install as a Cake Addin
#tool nuget:?package=Reo.Core.IntegrationTesting&version=10.0.222Install as a Cake Tool
Reo.Core.IntegrationTesting — это библиотека для упрощения написания интеграционных тестов в .NET-приложениях. Она предоставляет фикстуры для работы с различными системами (PostgreSQL, Redis, MongoDB, Elasticsearch), автоматизирует настройку и очистку тестовых данных, а также интегрируется с Moq.AutoMock для создания мок-объектов.
Решает следующие проблемы:
Основные функции:
| Компонент | Описание |
|---|---|
PostgresFixture<TDbContext> |
Фикстура для настройки PostgreSQL в тестах. Предоставляет DbContext и обрабатывает инициализацию/очистку БД. |
ElasticFixture |
Фикстура для работы с Elasticsearch. Обеспечивает доступ к клиенту Elasticsearch и настройку индексов. |
RedisFixture |
Фикстура для тестирования Redis. Создаёт и удаляет тестовые ключи в кэше. |
MongoFixture |
Фикстура для MongoDB. Обеспечивает доступ к клиенту MongoDB и управление коллекциями. |
AutoMockerExtensions |
Методы расширения для настройки Moq.AutoMock с фикстурами. |
TestFramework |
Модуль, управляющий жизненным циклом тестовых ресурсов (инициализация, очистка). |
Используйте следующие команды для установки пакета:
NuGet Package Manager:
Install-Package Reo.Core.IntegrationTesting
.NET CLI:
dotnet add package Reo.Core.IntegrationTesting
Добавьте сервисы в Startup.cs или Program.cs:
services.AddIntegrationTestingServices(); // Если есть кастомные настройки
Укажите параметры в appsettings.json или через AddSingleton:
{
"Testcontainers": {
"Postgres": {
"Image": "postgres:15",
"Username": "test",
"Password": "test"
},
"Mongo": {
"Image": "mongo:5.0",
"Username": "test",
"Password": "test"
}
}
}
[Fact]
public async Task TestWithPostgres()
{
// Arrange
var fixture = new PostgresFixture<MyDbContext>();
var dbContext = fixture.CreateContext();
// Act
await dbContext.MyEntities.AddAsync(new MyEntity { Name = "Test" });
await dbContext.SaveChangesAsync();
// Assert
var result = await dbContext.MyEntities.FirstOrDefaultAsync();
Assert.NotNull(result);
Assert.Equal("Test", result.Name);
}
[Fact]
public async Task TestWithElasticsearch()
{
// Arrange
var fixture = new ElasticFixture();
var client = fixture.Client;
// Act
await client.IndexAsync(new { Id = 1, Name = "Test" }, idx => idx.Index("test-index"));
// Assert
var result = await client.SearchAsync<TestDocument>(s => s
.Index("test-index")
.Query(q => q.Match(m => m.Field("name").Query("Test"))));
Assert.Single(result.Documents);
}
var mocker = new AutoMocker();
mocker.SetupPostgres<MyDbContext>(fixture); // Для PostgreSQL
var service = mocker.CreateInstance<MyService>();
service.DoSomething(); // Тест логики, зависящей от БД
Данный пакет распространяется под лицензией MIT.
Разработано с любовью для тестирования сложных систем! 🚀
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.233 | 43 | 6/26/2026 |
| 10.0.232 | 40 | 6/26/2026 |
| 10.0.231 | 42 | 6/26/2026 |
| 10.0.230 | 44 | 6/26/2026 |
| 10.0.229 | 75 | 6/25/2026 |
| 10.0.228 | 78 | 6/25/2026 |
| 10.0.227 | 77 | 6/25/2026 |
| 10.0.226 | 82 | 6/24/2026 |
| 10.0.225 | 84 | 6/24/2026 |
| 10.0.224 | 94 | 6/23/2026 |
| 10.0.223 | 86 | 6/23/2026 |
| 10.0.222 | 88 | 6/23/2026 |
| 10.0.221 | 86 | 6/23/2026 |
| 10.0.220 | 83 | 6/23/2026 |
| 10.0.219 | 85 | 6/23/2026 |
| 10.0.217 | 81 | 6/23/2026 |
| 10.0.216 | 89 | 6/23/2026 |
| 10.0.215 | 87 | 6/23/2026 |
| 10.0.214 | 86 | 6/23/2026 |
| 10.0.213 | 97 | 6/22/2026 |