Reo.Core.Xunit.IntegrationTesting 8.0.96

dotnet add package Reo.Core.Xunit.IntegrationTesting --version 8.0.96                
NuGet\Install-Package Reo.Core.Xunit.IntegrationTesting -Version 8.0.96                
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="8.0.96" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Reo.Core.Xunit.IntegrationTesting --version 8.0.96                
#r "nuget: Reo.Core.Xunit.IntegrationTesting, 8.0.96"                
#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=8.0.96

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

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