Reo.Core.Xunit.IntegrationTesting 8.0.54

dotnet add package Reo.Core.Xunit.IntegrationTesting --version 8.0.54                
NuGet\Install-Package Reo.Core.Xunit.IntegrationTesting -Version 8.0.54                
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.54" />                
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.54                
#r "nuget: Reo.Core.Xunit.IntegrationTesting, 8.0.54"                
#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.54

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

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