diff --git a/LehrerApp.Tests/LehrerApp.Tests.csproj b/LehrerApp.Tests/LehrerApp.Tests.csproj new file mode 100644 index 0000000..5b38128 --- /dev/null +++ b/LehrerApp.Tests/LehrerApp.Tests.csproj @@ -0,0 +1,18 @@ + + + net10.0 + false + true + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/LehrerApp.sln b/LehrerApp.sln index 5dc2cd5..15087a2 100644 --- a/LehrerApp.sln +++ b/LehrerApp.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Core", "LehrerApp.Core\LehrerApp.Core.csproj", "{A1000001-0000-0000-0000-000000000001}" EndProject @@ -12,23 +12,92 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Desktop", "Lehrer EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Data.Tests", "LehrerApp.Data.Tests\LehrerApp.Data.Tests.csproj", "{A1000006-0000-0000-0000-000000000006}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LehrerApp.Tests", "LehrerApp.Tests\LehrerApp.Tests.csproj", "{4A5AC233-5976-44CD-B5F7-6562B096BA47}" +EndProject Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.Build.0 = Debug|Any CPU - EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x64.Build.0 = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Debug|x86.Build.0 = Debug|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x64.ActiveCfg = Release|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x64.Build.0 = Release|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x86.ActiveCfg = Release|Any CPU + {A1000001-0000-0000-0000-000000000001}.Release|x86.Build.0 = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x64.Build.0 = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Debug|x86.Build.0 = Debug|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x64.ActiveCfg = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x64.Build.0 = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x86.ActiveCfg = Release|Any CPU + {A1000002-0000-0000-0000-000000000002}.Release|x86.Build.0 = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x64.Build.0 = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Debug|x86.Build.0 = Debug|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x64.ActiveCfg = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x64.Build.0 = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x86.ActiveCfg = Release|Any CPU + {A1000003-0000-0000-0000-000000000003}.Release|x86.Build.0 = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x64.Build.0 = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Debug|x86.Build.0 = Debug|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x64.ActiveCfg = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x64.Build.0 = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x86.ActiveCfg = Release|Any CPU + {A1000004-0000-0000-0000-000000000004}.Release|x86.Build.0 = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x64.Build.0 = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Debug|x86.Build.0 = Debug|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x64.ActiveCfg = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x64.Build.0 = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x86.ActiveCfg = Release|Any CPU + {A1000005-0000-0000-0000-000000000005}.Release|x86.Build.0 = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x64.Build.0 = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Debug|x86.Build.0 = Debug|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x64.ActiveCfg = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x64.Build.0 = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x86.ActiveCfg = Release|Any CPU + {A1000006-0000-0000-0000-000000000006}.Release|x86.Build.0 = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x64.ActiveCfg = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x64.Build.0 = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x86.ActiveCfg = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Debug|x86.Build.0 = Debug|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|Any CPU.Build.0 = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x64.ActiveCfg = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x64.Build.0 = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x86.ActiveCfg = Release|Any CPU + {4A5AC233-5976-44CD-B5F7-6562B096BA47}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection EndGlobal diff --git a/TODO.md b/TODO.md index 2c37a16..e1ac189 100644 --- a/TODO.md +++ b/TODO.md @@ -449,8 +449,9 @@ Fächer- und Kompetenzverwaltung existiert bereits in ## 13. Technische Basis ### 13.1 Tests -- [ ] **13.1.1** Testprojekt `LehrerApp.Tests` anlegen (xunit-Pakete sind in - [Directory.Packages.props](Directory.Packages.props) bereits gepflegt, Projekt fehlt). +- [x] **13.1.1** Testprojekt `LehrerApp.Tests` angelegt (referenziert `LehrerApp.Core`, analog zu + [LehrerApp.Data.Tests](LehrerApp.Data.Tests/LehrerApp.Data.Tests.csproj) für die Datenschicht). + Noch ohne Testfälle — folgt mit 13.1.2ff. - [ ] **13.1.2** Unit-Tests für `GradingService` (Notenschlüssel-Grenzfälle, gewichteter Schnitt). - [ ] **13.1.3** Unit-Tests für `SchoolYearService` (Jahreswechsel, Halbjahresgrenze). - [ ] **13.1.4** Repository-Tests gegen eine In-Memory-LiteDB.