Reo.Core.Xunit.IntegrationTesting 6.0.31959

There is a newer version of this package available.
See the version list below for details.
dotnet add package Reo.Core.Xunit.IntegrationTesting --version 6.0.31959                
NuGet\Install-Package Reo.Core.Xunit.IntegrationTesting -Version 6.0.31959                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Reo.Core.Xunit.IntegrationTesting" Version="6.0.31959" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Reo.Core.Xunit.IntegrationTesting --version 6.0.31959                
#r "nuget: Reo.Core.Xunit.IntegrationTesting, 6.0.31959"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Reo.Core.Xunit.IntegrationTesting as a Cake Addin
#addin nuget:?package=Reo.Core.Xunit.IntegrationTesting&version=6.0.31959

// Install Reo.Core.Xunit.IntegrationTesting as a Cake Tool
#tool nuget:?package=Reo.Core.Xunit.IntegrationTesting&version=6.0.31959                

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)
    {
    	// ...
    }

    // ...
}

Сидирование данных

Чтобы проинициализировать справочники, вы должны реализовать абстрактный класс ContainerSeeder

public sealed class PostgresSeeder : ContainerSeeder<PostgresFixture<TestingContext>>
{
    /// <inheritdoc />
    public override async Task SeedAsync(PostgresFixture<TestingContext> fixture)
    {
        await using var databaseContext =
            await fixture.DatabaseContextFactory.CreateDbContextAsync();

        databaseContext.References.Add(new()
        {
            Id = Guid.NewGuid(),
            Name = "Profile test"
        });

        await databaseContext.SaveChangesAsync();
    }
}

Сид не должен содержать конструкторов, кроме стандартного. Количество сидов для одной фикстуры не ограничено.

Немного про очистку базы данных после исполнения конкретного теста

Если после каждого теста вы хотите откатывать ее в первоначальное состояние - используйте метод CleanupAsync, определенной у каждой фикстуры:

public sealed class Tests : IClassFixture<PostgresFixture<TestingContext>>, IAsyncLifetime
{
    private readonly PostgresFixture<TestingContext> _fixture;

    public ContainerSeederTests(PostgresFixture<TestingContext> fixture)
        => _fixture = fixture;

    public async Task InitializeAsync()
    {
        await using var databaseContext =
            await _fixture.DatabaseContextFactory.CreateDbContextAsync();

        databaseContext.Entities.Add(new()
        {
            Id = Guid.NewGuid()
        });

        await databaseContext.SaveChangesAsync();
    }

    [Theory]
    [InlineData(1)]
    [InlineData(2)]
    [InlineData(3)]
    public async Task Verify(int _)
    {
        // Благодаря _fixture.CleanupAsync() в базе всегда будет 1 запись, добавленная в InitializeAsync()
    }


    public Task DisposeAsync()
        => _fixture.CleanupAsync();
}

Метод CleanupAsync очищает базу данных и повторно выполняет сидирование справочников

Регистрация артефактов из фикстуры в 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
8.0.44 39 11/22/2024
8.0.43 39 11/22/2024
8.0.42 33 11/21/2024
8.0.41 38 11/21/2024
8.0.40 54 11/20/2024
8.0.36 66 11/20/2024
8.0.35 72 11/20/2024
8.0.34 63 11/20/2024
8.0.32 76 11/20/2024
8.0.31 84 11/19/2024
8.0.30 81 11/18/2024
8.0.29 73 11/18/2024
8.0.28 89 11/15/2024
8.0.27 72 11/15/2024
8.0.26 73 11/14/2024
8.0.25 75 11/14/2024
8.0.24 77 11/13/2024
8.0.23 71 11/13/2024
8.0.22 73 11/12/2024
8.0.21 91 11/12/2024
8.0.20 78 11/12/2024
8.0.19 91 11/11/2024
8.0.18 84 11/11/2024
8.0.17 88 11/11/2024
8.0.16 88 11/8/2024
8.0.15 74 11/7/2024
8.0.14 69 11/7/2024
8.0.12 78 11/5/2024
8.0.11 80 11/5/2024
8.0.10 82 11/5/2024
8.0.9 75 10/30/2024
8.0.8 74 10/30/2024
8.0.7 74 10/30/2024
8.0.6 78 10/28/2024
8.0.5 111 10/23/2024
8.0.4 78 10/23/2024
6.0.32011 134 10/18/2024
6.0.32010 91 10/16/2024
6.0.32009 97 10/16/2024
6.0.32008 102 10/16/2024
6.0.32007 96 10/16/2024
6.0.32006 101 10/16/2024
6.0.32005 94 10/14/2024
6.0.32004 116 10/9/2024
6.0.32001 118 10/2/2024
6.0.32000 106 10/1/2024
6.0.31999 89 10/1/2024
6.0.31998 100 10/1/2024
6.0.31997 100 9/30/2024
6.0.31996 101 9/30/2024
6.0.31995 108 9/30/2024
6.0.31994 133 9/20/2024
6.0.31993 91 9/20/2024
6.0.31992 97 9/20/2024
6.0.31991 104 9/19/2024
6.0.31990 99 9/17/2024
6.0.31989 95 9/16/2024
6.0.31988 97 9/16/2024
6.0.31987 99 9/16/2024
6.0.31986 96 9/16/2024
6.0.31985 115 9/13/2024
6.0.31984 110 9/13/2024
6.0.31983 109 9/13/2024
6.0.31982 111 9/12/2024
6.0.31981 100 9/12/2024
6.0.31980 100 9/12/2024
6.0.31979 104 9/12/2024
6.0.31978 108 9/12/2024
6.0.31977 146 9/11/2024
6.0.31976 138 9/11/2024
6.0.31975 132 9/11/2024
6.0.31974 224 9/6/2024
6.0.31973 140 9/5/2024
6.0.31972 113 9/4/2024
6.0.31971 112 9/2/2024
6.0.31970 112 8/28/2024
6.0.31969 114 8/28/2024
6.0.31968 125 8/27/2024
6.0.31967 115 8/26/2024
6.0.31966 128 8/21/2024
6.0.31965 195 8/19/2024
6.0.31964 123 8/19/2024
6.0.31963 121 8/19/2024
6.0.31962 135 8/15/2024
6.0.31961 149 8/13/2024
6.0.31960 133 8/12/2024
6.0.31959 121 8/12/2024
6.0.31958 93 8/7/2024
6.0.31957 106 8/7/2024
6.0.31956 87 8/6/2024
6.0.31955 98 8/6/2024
6.0.31954 92 8/6/2024
6.0.31953 95 8/6/2024
6.0.31952 98 8/5/2024
6.0.31951 89 8/2/2024
6.0.31950 86 8/2/2024
6.0.31949 90 8/2/2024
6.0.31948 110 8/1/2024
6.0.31947 93 7/31/2024
6.0.31946 141 7/30/2024
6.0.31945 71 7/30/2024
6.0.31944 85 7/25/2024
6.0.31943 72 7/25/2024
6.0.31942 116 7/24/2024
6.0.31941 120 7/24/2024
6.0.31940 126 7/22/2024
6.0.31939 111 7/22/2024
6.0.31938 109 7/22/2024
6.0.31937 127 7/21/2024
6.0.31936 105 7/19/2024
6.0.31935 94 7/19/2024
6.0.31934 98 7/19/2024
6.0.31933 102 7/18/2024
6.0.31932 99 7/18/2024
6.0.31931 89 7/18/2024
6.0.31930 92 7/18/2024
6.0.31929 95 7/16/2024
6.0.31928 101 7/16/2024
6.0.31927 94 7/16/2024
6.0.31926 97 7/16/2024
6.0.31925 90 7/16/2024
6.0.31924 93 7/16/2024
6.0.31921 97 7/15/2024
6.0.31920 89 7/15/2024
6.0.31919 97 7/15/2024
6.0.31918 89 7/11/2024
6.0.31917 90 7/11/2024
6.0.31916 104 7/11/2024
6.0.31915 94 7/11/2024
6.0.31914 101 7/10/2024
6.0.31913 108 7/10/2024
6.0.31912 103 7/10/2024
6.0.31911 101 7/10/2024
6.0.31910 121 7/4/2024
6.0.31909 111 7/3/2024
6.0.31908 121 7/3/2024
6.0.31907 123 7/2/2024
6.0.31906 124 6/27/2024
6.0.31905 121 6/27/2024
6.0.31904 122 6/27/2024
6.0.31903 121 6/27/2024
6.0.31902 104 6/27/2024
6.0.31901 112 6/26/2024
6.0.31900 108 6/26/2024
6.0.31899 112 6/26/2024
6.0.31898 114 6/26/2024
6.0.31897 106 6/26/2024
6.0.31896 92 6/26/2024
6.0.31894 110 6/25/2024
6.0.31893 109 6/25/2024
6.0.31892 106 6/25/2024
6.0.31891 103 6/25/2024
6.0.31890 106 6/25/2024
6.0.31887 104 6/25/2024
6.0.31886 110 6/25/2024
6.0.31885 104 6/24/2024
6.0.31884 105 6/24/2024
6.0.31883 123 6/23/2024
6.0.31882 108 6/21/2024
6.0.31881 107 6/21/2024
6.0.31880 107 6/21/2024
6.0.31879 127 6/20/2024
6.0.31878 185 6/19/2024
6.0.31877 123 6/19/2024
6.0.31876 117 6/19/2024
6.0.31875 124 6/19/2024
6.0.31874 117 6/19/2024
6.0.31873 121 6/19/2024
6.0.31872 128 6/19/2024
6.0.31871 128 6/19/2024
6.0.31870 121 6/19/2024
6.0.31869 118 6/19/2024
6.0.31868 129 6/18/2024
6.0.31867 115 6/18/2024
6.0.31866 126 6/18/2024
6.0.31865 127 6/18/2024
6.0.31864 129 6/18/2024
6.0.31863 120 6/18/2024
6.0.31862 124 6/18/2024
6.0.31861 110 6/18/2024
6.0.31860 114 6/17/2024
6.0.31859 114 6/17/2024
6.0.31858 116 6/17/2024
6.0.31857 119 6/17/2024
6.0.31856 120 6/17/2024
6.0.31855 108 6/17/2024
6.0.31854 115 6/17/2024
6.0.31853 131 6/17/2024
6.0.31852 121 6/17/2024
6.0.31851 119 6/17/2024
6.0.31850 119 6/17/2024
6.0.31849 109 6/17/2024
6.0.31848 121 6/15/2024
6.0.31847 114 6/15/2024
6.0.31846 108 6/14/2024
6.0.31845 122 6/14/2024
6.0.31844 127 6/14/2024
6.0.31843 113 6/14/2024
6.0.31842 126 6/14/2024
6.0.31841 120 6/13/2024
6.0.31840 120 6/13/2024
6.0.31839 113 6/13/2024
6.0.31838 112 6/13/2024
6.0.31837 113 6/13/2024
6.0.31836 122 6/13/2024
6.0.31835 126 6/13/2024
6.0.31834 108 6/13/2024
6.0.31833 106 6/12/2024
6.0.31832 102 6/12/2024
6.0.31831 101 6/11/2024
6.0.31830 98 6/11/2024
6.0.31829 94 6/11/2024
6.0.31828 97 6/11/2024
6.0.31827 109 6/11/2024
6.0.31826 96 6/11/2024
6.0.31825 111 6/10/2024
6.0.31824 100 6/10/2024
6.0.31823 104 6/10/2024
6.0.31822 104 6/10/2024
6.0.31821 100 6/10/2024
6.0.31820 103 6/10/2024
6.0.31819 101 6/10/2024
6.0.31818 96 6/10/2024
6.0.31817 103 6/7/2024
6.0.31816 104 6/7/2024
6.0.31815 107 6/7/2024
6.0.31814 119 6/6/2024
6.0.31813 116 6/6/2024
6.0.31812 115 6/6/2024
6.0.31811 107 6/6/2024
6.0.31810 118 6/6/2024
6.0.31809 116 6/6/2024
6.0.31808 110 6/6/2024
6.0.31807 119 6/5/2024
6.0.31806 120 6/4/2024
6.0.31805 113 6/4/2024
6.0.31804 117 6/4/2024
6.0.31803 114 6/4/2024
6.0.31802 113 6/4/2024
6.0.31801 118 6/3/2024
6.0.31800 113 6/3/2024
6.0.31799 108 6/3/2024
6.0.31798 106 6/3/2024
6.0.31797 92 6/3/2024
6.0.31796 111 6/3/2024
6.0.31795 124 6/3/2024
6.0.31794 136 5/31/2024
6.0.31793 130 5/30/2024
6.0.31792 125 5/30/2024
6.0.31791 113 5/30/2024
6.0.31790 121 5/30/2024
6.0.31789 122 5/30/2024
6.0.31788 124 5/30/2024
6.0.31787 119 5/29/2024
6.0.31786 110 5/29/2024
6.0.31785 114 5/29/2024
6.0.31784 104 5/29/2024
6.0.31783 131 5/27/2024
6.0.31782 112 5/27/2024
6.0.31781 127 5/26/2024
6.0.31780 124 5/24/2024
6.0.31779 118 5/22/2024
6.0.31778 127 5/22/2024
6.0.31777 108 5/22/2024
6.0.31776 121 5/22/2024
6.0.31775 116 5/22/2024
6.0.31774 115 5/21/2024
6.0.31773 115 5/21/2024
6.0.31772 123 5/20/2024
6.0.31771 112 5/16/2024
6.0.31770 112 5/15/2024
6.0.31769 115 5/15/2024
6.0.31768 120 5/15/2024
6.0.31767 107 5/15/2024
6.0.31766 129 5/15/2024
6.0.31764 121 5/14/2024
6.0.31763 107 5/14/2024
6.0.31762 101 5/14/2024
6.0.31761 117 5/14/2024
6.0.31760 115 5/14/2024
6.0.31759 121 5/13/2024
6.0.31758 120 5/13/2024
6.0.31757 105 5/13/2024
6.0.31756 109 5/12/2024
6.0.31755 105 5/12/2024
6.0.31754 118 5/12/2024
6.0.31753 126 5/8/2024
6.0.31751 123 5/7/2024
6.0.31749 125 5/6/2024
6.0.31748 129 5/6/2024
6.0.31747 139 5/6/2024
6.0.31746 92 5/3/2024
6.0.31745 80 5/3/2024
6.0.31744 81 5/3/2024
6.0.31743 81 5/2/2024
6.0.31742 125 4/27/2024
6.0.31741 122 4/27/2024
6.0.31740 126 4/26/2024
6.0.31739 118 4/26/2024
6.0.31738 136 4/26/2024
6.0.31737 143 4/26/2024
6.0.31735 144 4/25/2024
6.0.31734 129 4/25/2024
6.0.31733 121 4/25/2024
6.0.31732 118 4/25/2024
6.0.31731 110 4/25/2024
6.0.31730 130 4/24/2024
6.0.31729 120 4/24/2024
6.0.31728 129 4/24/2024
6.0.31727 124 4/23/2024
6.0.31726 105 4/23/2024
6.0.31725 121 4/23/2024
6.0.31724 116 4/22/2024
6.0.31723 126 4/22/2024
6.0.31722 131 4/22/2024
6.0.31721 127 4/22/2024
6.0.31720 126 4/22/2024
6.0.31719 116 4/22/2024
6.0.31718 120 4/22/2024
6.0.31717 128 4/22/2024
6.0.31716 119 4/22/2024
6.0.31715 128 4/20/2024
6.0.31714 134 4/19/2024
6.0.31713 111 4/19/2024
6.0.31712 107 4/19/2024
6.0.31711 125 4/19/2024
6.0.31710 118 4/19/2024
6.0.31709 130 4/19/2024
6.0.31708 122 4/18/2024
6.0.31707 119 4/18/2024
6.0.31706 114 4/18/2024
6.0.31705 111 4/17/2024
6.0.31704 134 4/17/2024
6.0.31703 118 4/17/2024
6.0.31702 121 4/17/2024
6.0.31701 112 4/16/2024
6.0.31700 117 4/16/2024
6.0.31699 119 4/16/2024
6.0.31698 105 4/16/2024
6.0.31697 111 4/16/2024
6.0.31696 116 4/16/2024
6.0.31695 109 4/16/2024
6.0.31694 110 4/16/2024
6.0.31693 113 4/16/2024
6.0.31692 113 4/15/2024
6.0.31691 115 4/15/2024
6.0.31690 122 4/15/2024
6.0.31688 129 4/12/2024
6.0.31687 109 4/12/2024
6.0.31686 112 4/12/2024
6.0.31685 114 4/12/2024
6.0.31684 103 4/11/2024
6.0.31683 124 4/10/2024
6.0.31682 114 4/10/2024
6.0.31681 103 4/10/2024
6.0.31680 121 4/10/2024
6.0.31679 100 4/10/2024
6.0.31678 109 4/10/2024
6.0.31677 122 4/9/2024
6.0.31676 124 4/9/2024
6.0.31675 120 4/8/2024
6.0.31674 123 4/8/2024
6.0.31673 129 4/8/2024
6.0.31672 100 4/8/2024
6.0.31671 110 4/8/2024
6.0.31670 126 4/8/2024
6.0.31669 129 4/8/2024
6.0.31668 125 4/5/2024
6.0.31667 126 4/5/2024
6.0.31666 129 4/3/2024
6.0.31665 120 4/3/2024
6.0.31663 132 4/3/2024
6.0.31662 121 4/3/2024
6.0.31661 120 4/2/2024
6.0.31660 131 4/1/2024
6.0.31659 128 4/1/2024
6.0.31658 111 4/1/2024
6.0.31657 115 3/29/2024
6.0.31656 114 3/29/2024
6.0.31655 116 3/29/2024
6.0.31654 119 3/29/2024
6.0.31653 116 3/29/2024
6.0.31651 100 3/29/2024
6.0.31650 117 3/29/2024
6.0.31649 103 3/29/2024
6.0.31648 123 3/29/2024
6.0.31647 110 3/29/2024
6.0.31646 128 3/29/2024
6.0.31645 113 3/28/2024
6.0.31644 115 3/28/2024
6.0.31643 126 3/28/2024
6.0.31642 112 3/28/2024
6.0.31639 121 3/28/2024
6.0.31638 106 3/28/2024
6.0.31637 132 3/27/2024
6.0.31636 148 3/27/2024
6.0.31631 120 3/27/2024
6.0.31626 126 3/26/2024
6.0.31625 131 3/25/2024
6.0.31618 127 3/20/2024
6.0.31617 121 3/20/2024
6.0.31616 130 3/20/2024
6.0.31615 138 3/20/2024
6.0.31614 142 3/19/2024
6.0.31613 142 3/18/2024
6.0.31612 143 3/18/2024
6.0.31611 147 3/18/2024
6.0.31610 137 3/18/2024
6.0.31609 132 3/15/2024
6.0.31608 134 3/14/2024
6.0.31607 144 3/13/2024
6.0.31606 138 3/13/2024
6.0.31605 127 3/13/2024
6.0.31604 128 3/12/2024
6.0.31603 124 3/12/2024
6.0.31602 164 3/7/2024
6.0.31601 141 3/7/2024
6.0.31600 147 3/7/2024
6.0.31599 155 3/6/2024
6.0.31598 140 3/6/2024
6.0.31597 140 3/6/2024
6.0.31596 142 3/6/2024
6.0.31595 152 3/6/2024
6.0.31594 126 3/4/2024
6.0.31593 131 3/4/2024
6.0.31590 130 3/1/2024
6.0.31589 134 3/1/2024
6.0.31588 125 3/1/2024
6.0.31587 132 3/1/2024
6.0.31586 145 3/1/2024
6.0.31585 124 3/1/2024
6.0.31584 130 3/1/2024
6.0.31583 128 3/1/2024
6.0.31582 132 2/29/2024
6.0.31581 126 2/29/2024
6.0.31580 125 2/29/2024
6.0.31579 139 2/29/2024
6.0.31578 132 2/29/2024
6.0.31577 128 2/29/2024
6.0.31576 138 2/29/2024
6.0.31575 189 2/28/2024
6.0.44 35 11/22/2024
6.0.43 36 11/22/2024
6.0.42 32 11/21/2024
6.0.41 36 11/21/2024
6.0.40 46 11/20/2024
6.0.36 48 11/20/2024
6.0.35 61 11/20/2024
6.0.34 71 11/20/2024
6.0.32 72 11/20/2024
6.0.31 75 11/19/2024
6.0.30 79 11/18/2024
6.0.29 82 11/18/2024
6.0.28 76 11/15/2024
6.0.27 78 11/15/2024
6.0.26 73 11/14/2024
6.0.25 79 11/14/2024
6.0.24 72 11/13/2024
6.0.23 68 11/13/2024
6.0.22 77 11/12/2024
6.0.21 75 11/12/2024
6.0.20 90 11/12/2024
6.0.19 82 11/11/2024
6.0.18 84 11/11/2024
6.0.17 88 11/11/2024
6.0.16 77 11/8/2024
6.0.15 74 11/7/2024
6.0.14 75 11/7/2024
6.0.12 80 11/5/2024
6.0.11 80 11/5/2024
6.0.10 79 11/5/2024
6.0.9 75 10/30/2024
6.0.8 78 10/30/2024
6.0.7 70 10/30/2024
6.0.6 77 10/28/2024
6.0.5 73 10/23/2024
6.0.4 79 10/23/2024