Reo.Core.Xunit.IntegrationTesting 6.0.31911

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.31911                
NuGet\Install-Package Reo.Core.Xunit.IntegrationTesting -Version 6.0.31911                
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.31911" />                
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.31911                
#r "nuget: Reo.Core.Xunit.IntegrationTesting, 6.0.31911"                
#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.31911

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

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