diff --git a/src/grate.core/grate.core.csproj b/src/grate.core/grate.core.csproj
index 5d474ff0..e3a04f86 100644
--- a/src/grate.core/grate.core.csproj
+++ b/src/grate.core/grate.core.csproj
@@ -5,7 +5,7 @@
enable
grate
build$([System.DateTime]::UtcNow.ToString("O"))
-
+ false
diff --git a/src/grate.mariadb/grate.mariadb.csproj b/src/grate.mariadb/grate.mariadb.csproj
index 7120c6bf..5ea931fc 100644
--- a/src/grate.mariadb/grate.mariadb.csproj
+++ b/src/grate.mariadb/grate.mariadb.csproj
@@ -3,6 +3,7 @@
$(NetTargetFrameworks)
enable
+ false
diff --git a/src/grate.oracle/grate.oracle.csproj b/src/grate.oracle/grate.oracle.csproj
index ec0e3992..e1a9f899 100644
--- a/src/grate.oracle/grate.oracle.csproj
+++ b/src/grate.oracle/grate.oracle.csproj
@@ -3,6 +3,7 @@
$(NetTargetFrameworks)
enable
+ false
diff --git a/src/grate.postgresql/grate.postgresql.csproj b/src/grate.postgresql/grate.postgresql.csproj
index 01a463c3..30e63ecc 100644
--- a/src/grate.postgresql/grate.postgresql.csproj
+++ b/src/grate.postgresql/grate.postgresql.csproj
@@ -3,6 +3,7 @@
$(NetTargetFrameworks)
enable
+ false
diff --git a/src/grate.sqlite/grate.sqlite.csproj b/src/grate.sqlite/grate.sqlite.csproj
index 1c392d20..d2faea6f 100644
--- a/src/grate.sqlite/grate.sqlite.csproj
+++ b/src/grate.sqlite/grate.sqlite.csproj
@@ -3,6 +3,7 @@
$(NetTargetFrameworks)
enable
+ false
diff --git a/src/grate.sqlserver/grate.sqlserver.csproj b/src/grate.sqlserver/grate.sqlserver.csproj
index 5f39ec3b..94e02a1b 100644
--- a/src/grate.sqlserver/grate.sqlserver.csproj
+++ b/src/grate.sqlserver/grate.sqlserver.csproj
@@ -3,6 +3,7 @@
$(NetTargetFrameworks)
enable
+ false
diff --git a/unittests/Basic_tests/Basic_tests.csproj b/unittests/Basic_tests/Basic_tests.csproj
index 65370bca..bbd76904 100644
--- a/unittests/Basic_tests/Basic_tests.csproj
+++ b/unittests/Basic_tests/Basic_tests.csproj
@@ -6,6 +6,7 @@
enable
false
+ false
true
Basic_tests
diff --git a/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj b/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj
index 9347f583..fc1fbc8a 100644
--- a/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj
+++ b/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
false
diff --git a/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj b/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj
index 92070270..a162a899 100644
--- a/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj
+++ b/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj b/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj
index b4e5ecb9..915d93e8 100644
--- a/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj
+++ b/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj b/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj
index e524c1a5..841b2cf0 100644
--- a/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj
+++ b/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj b/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj
index 5ac48ef8..773c17a8 100644
--- a/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj
+++ b/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj b/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj
index bb81a62f..d4a2db5e 100644
--- a/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj
+++ b/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/Docker/Docker.Common/Docker.Common.csproj b/unittests/Docker/Docker.Common/Docker.Common.csproj
index ceb8fca8..b83dab4b 100644
--- a/unittests/Docker/Docker.Common/Docker.Common.csproj
+++ b/unittests/Docker/Docker.Common/Docker.Common.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
false
diff --git a/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj b/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj
index daf980d5..fd3f5944 100644
--- a/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj
+++ b/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj b/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj
index e19627be..f2416bf4 100644
--- a/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj
+++ b/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj b/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj
index fa2a1710..393b7474 100644
--- a/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj
+++ b/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj b/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj
index daa4f49b..a06d9df3 100644
--- a/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj
+++ b/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj b/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj
index ceb02f9d..4ec396a7 100644
--- a/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj
+++ b/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj
@@ -5,6 +5,7 @@
enable
enable
+ false
false
true
diff --git a/unittests/MariaDB/MariaDB.csproj b/unittests/MariaDB/MariaDB.csproj
index e26a694f..b7a60bfa 100644
--- a/unittests/MariaDB/MariaDB.csproj
+++ b/unittests/MariaDB/MariaDB.csproj
@@ -1,22 +1,24 @@
- net8.0
- enable
- enable
+ net8.0
+ enable
+ enable
- false
+ true
+ false
+ false
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/unittests/Oracle/Oracle.csproj b/unittests/Oracle/Oracle.csproj
index 5757d832..e5b720a1 100644
--- a/unittests/Oracle/Oracle.csproj
+++ b/unittests/Oracle/Oracle.csproj
@@ -1,11 +1,13 @@
- net8.0
- enable
- enable
+ net8.0
+ enable
+ enable
- false
+ true
+ false
+ false
diff --git a/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs b/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs
index 9e8eeacc..4ac9084a 100644
--- a/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs
+++ b/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs
@@ -1,4 +1,5 @@
using System.Data;
+using System.Diagnostics.CodeAnalysis;
using Docker.DotNet.Models;
using grate.Infrastructure;
using grate.Migration;
diff --git a/unittests/PostgreSQL/PostgreSQL.csproj b/unittests/PostgreSQL/PostgreSQL.csproj
index 24604fba..f1c9528e 100644
--- a/unittests/PostgreSQL/PostgreSQL.csproj
+++ b/unittests/PostgreSQL/PostgreSQL.csproj
@@ -1,11 +1,13 @@
- net8.0
- enable
- enable
+ net8.0
+ enable
+ enable
- false
+ true
+ false
+ false
diff --git a/unittests/SqlServer/SqlServer.csproj b/unittests/SqlServer/SqlServer.csproj
index 33f5ccc0..c5c043be 100644
--- a/unittests/SqlServer/SqlServer.csproj
+++ b/unittests/SqlServer/SqlServer.csproj
@@ -1,14 +1,16 @@
- net8.0
- enable
- enable
+ net8.0
+ enable
+ enable
- false
+ true
+ false
+ false
-
+
@@ -17,7 +19,7 @@
-
+
diff --git a/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs b/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs
index 732c5057..49893c2e 100644
--- a/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs
+++ b/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs
@@ -1,4 +1,5 @@
using System.Data;
+using System.Diagnostics.CodeAnalysis;
using grate.Infrastructure;
using grate.Migration;
using grate.SqlServer.Infrastructure;
diff --git a/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj b/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj
index 33f5ccc0..fe3d7495 100644
--- a/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj
+++ b/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj
@@ -1,11 +1,13 @@
- net8.0
- enable
- enable
+ net8.0
+ enable
+ enable
- false
+ true
+ false
+ false
diff --git a/unittests/Sqlite/Sqlite.csproj b/unittests/Sqlite/Sqlite.csproj
index fe1ec155..f4daa195 100644
--- a/unittests/Sqlite/Sqlite.csproj
+++ b/unittests/Sqlite/Sqlite.csproj
@@ -1,11 +1,13 @@
- net8.0
- enable
- enable
+ net8.0
+ enable
+ enable
- false
+ true
+ false
+ false
diff --git a/unittests/TestCommon/Startup.cs b/unittests/TestCommon/Startup.cs
index 77de9c7f..c7c59646 100644
--- a/unittests/TestCommon/Startup.cs
+++ b/unittests/TestCommon/Startup.cs
@@ -1,3 +1,4 @@
+using System.Diagnostics.CodeAnalysis;
using DotNet.Testcontainers.Builders;
using grate.Configuration;
using Microsoft.Extensions.Configuration;
@@ -38,8 +39,13 @@ public void ConfigureServices(IServiceCollection services, HostBuilderContext co
RegisterTestDatabase(services, context.Configuration);
}
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
protected abstract Type TestContainerDatabaseType { get; }
+
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
protected abstract Type ExternalTestDatabaseType { get; }
+
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
protected abstract Type TestContextType { get; }
// ReSharper disable once UnassignedGetOnlyAutoProperty
diff --git a/unittests/TestCommon/Startup_T.cs b/unittests/TestCommon/Startup_T.cs
index dc3aac2e..affd8331 100644
--- a/unittests/TestCommon/Startup_T.cs
+++ b/unittests/TestCommon/Startup_T.cs
@@ -1,16 +1,22 @@
+using System.Diagnostics.CodeAnalysis;
using TestCommon.TestInfrastructure;
namespace TestCommon;
public abstract class Startup<
- TTestContainerDatabase,
- TExternalDatabase,
- TGrateTestContext>: Startup
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TTestContainerDatabase,
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TExternalDatabase,
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TGrateTestContext>: Startup
where TTestContainerDatabase : ITestDatabase
where TExternalDatabase : ITestDatabase
where TGrateTestContext : IGrateTestContext
{
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
protected override Type TestContainerDatabaseType => typeof(TTestContainerDatabase);
+
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
protected override Type ExternalTestDatabaseType => typeof(TExternalDatabase);
+
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
protected override Type TestContextType => typeof(TGrateTestContext);
}
diff --git a/unittests/TestCommon/TestCommon.csproj b/unittests/TestCommon/TestCommon.csproj
index 4b481bbd..9ef4c946 100644
--- a/unittests/TestCommon/TestCommon.csproj
+++ b/unittests/TestCommon/TestCommon.csproj
@@ -5,7 +5,9 @@
enable
enable
false
+ false
false
+ IL2072;IL2075;IL2026
diff --git a/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs b/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs
index dceee4d6..472ec186 100644
--- a/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs
+++ b/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs
@@ -1,4 +1,5 @@
using System.Data;
+using System.Diagnostics.CodeAnalysis;
using Dapper;
using grate.Infrastructure;
using grate.Migration;
@@ -41,7 +42,9 @@ public async Task DropDatabase(string databaseName)
public abstract ISyntax Syntax { get; }
public abstract Type DbExceptionType { get; }
+
public abstract Type DatabaseType { get; }
+
public abstract bool SupportsTransaction { get; }
public abstract SqlStatements Sql { get; }
public abstract string ExpectedVersionPrefix { get; }
diff --git a/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs b/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs
index 36e1fe0e..4edc5d9d 100644
--- a/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs
+++ b/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs
@@ -1,4 +1,5 @@
using System.Data;
+using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using grate.Configuration;
using grate.Infrastructure;