Migrující testy na Xunit V3 v MVVMCross 9.3.1 nabízí několik výhod, které zvyšují zkušenosti s testováním a zlepšují celkovou účinnost projektu. Zde jsou některé z klíčových výhod:
1. Vylepšený výkon a izolace:
- Samostatné spustitelné soubory: Xunit V3 umožňuje kompilaci testovacích projektů do samostatných spustitelných souborů, které mohou běžet samostatně, aniž by bylo nutné samostatného testovacího běžce. To zjednodušuje proces provozování testů a zlepšuje výkon využitím kompilátoru pro rozlišení závislosti, spíše než se spoléhá na mechanismy runtime, jako jsou aplikační domény ve starších verzích .NET Framework [4] [8].
- Izolace procesu: Testy jsou prováděny v samostatných procesech a poskytují lepší izolaci mezi testy. To snižuje riziko, že se testy navzájem zasahují a usnadňují správu složitých testovacích scénářů [4].
2. zvýšená rozšiřitelnost a flexibilita:
- Zjednodušené API: Nová verze představuje zjednodušená API s metodami jako `find`,` findAndRun` a `run`, které jsou navrženy tak, aby optimalizovaly interakce napříč hranicemi procesů. To usnadňuje rozšíření a přizpůsobení testovacího rámce [1] [4].
- Sjednocené zkušenosti s příkazovým řádkem: Xunit V3 podporuje sjednocený příkazový řádek v různých testovacích rámcích, včetně MSTEST. Tato konzistence zjednodušuje pracovní postup testování a usnadňuje správu testů z příkazového řádku [1].
3. Lepší podpora moderních .NET Frameworks:
- Oficiální podpora pro Mono: Xunit V3 oficiálně podporuje Mono na Linuxu a MacOS pro .NET Framework Test Projects, což zajišťuje, že testy lze spolehlivě provádět na různých platformách [4].
- Cílové rámce: Xunit V3 cílí rámce jako `netStandard2.0`,` net472` a `net6.0`, takže je kompatibilní s širokou škálou prostředí .NET [4].
4. vylepšené diagnostické zasílání zpráv:
- Zjednodušená manipulace s diagnostickými zprávami: Parametry `iMessageSink` byly odstraněny z konstruktérů a diagnostické zprávy lze nyní odeslat pomocí okolního` testContext.Current.sendDiagnosticMessage`. To zjednodušuje proces odesílání diagnostických zpráv během testování [1].
5. Migrace a kompatibilita:
- Migrační cesta: Ačkoli migrace z Xunit V2 na V3 může vyžadovat změny ve stávajících testovacích projektech, nové funkce a vylepšení způsobují, že stojí za to. Migrace MVVMCrossu na Xunit V3 ve verzi 9.3.1 naznačuje závazek využít tyto pokroky pro lepší řízení testů [7] [8].
Celkově migrující testy na Xunit V3 v MVVMCross 9.3.1 zvyšují výkon testu, rozšiřitelnost a kompatibilitu s moderními rámci .NET a poskytují robustnější a efektivnější testovací prostředí.
Citace:[1] https://xunit.net/docs/getting-started/v3/whats-new
[2] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[3] https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-mstest-migration-from-v1-to-v3
[4] https://xunit.net/docs/getting-started/v3/migration
[5] https://www.mvvmcross.com/mvvmcross-6.0.0-release/
[6] https://www.nuget.org/packages/mvvmcross.tests/
[7] https://github.com/mvvmcross/mvvmcross/releases
[8] https://blogs.Sathiyaraman-m.com/whats-new-in-xunit-v3
[9] https://www.mvvmcross.com/mvvmcross-9.0.0-release/