Mam zestaw udostępniający interfejs API i używany przez inne zespoły. Muszę sprawdzić, czy nowsza wersja biblioteki DLL API jest nadal zgodna ze starszymi wersjami, które używały starszej wersji interfejsu API.Jak mogę przetestować kompatybilność wsteczną interfejsu API między zespołami .net?
Znalazłem kilka pytań, które zadają to samo, ale nie ma odpowiedzi, które rozwiązać mój problem:
Proponowane narzędzia mogą tylko porównanie dwóch zgrupowania i powiedz, czy możliwe są zmiany w API, ale nie, jeśli najnowszy interfejs API naprawdę zepsuje starszy zestaw, który go używa. Chciałbym znaleźć narzędzie lub napisać test, który będzie w stanie sprawdzić, czy każda ze starszych bibliotek dll może współpracować z moją nową biblioteką DLL API.
Jeśli chodzi o zmiany w interfejsie API, to najprawdopodobniej będę je tylko rozszerzał, ale mimo to nadal może złamać kod w starszych zestawach. Niektóre z przykładów takich zmian można znaleźć tutaj:
- A definite guide to API-breaking changes in .NET
- .NET: with respect to AssemblyVersion, what defines binary compatibility?
Na razie jedynym rozwiązaniem widzę jest do kompilacji kodu źródłowego starszych zespołów z najnowszym API , ale chciałbym to zrobić tylko ze złożeniami i dodać je jako część moich testów jednostkowych. Czy jest jakiś lepszy sposób, żeby sobie z tym poradzić?
edit:
Szukam narzędzie, które będą w stanie zautomatyzować proces weryfikacji wstecznej kompatybilności między zespołami .NET. (linia poleceń lub z niektórymi api też)
To prawdopodobnie mój brak zrozumienia, ale nie rozumiem, jak narzędzie, którego szukasz, może zrobić lepiej lub łatwiej niż samo skompilowanie połączonych źródeł. To znaczy, narzędzie będzie potrzebowało zarówno starego, jak i nowego źródła, aby móc analizować zmiany w sposób zamierzony, prawda? Może zapełnisz mnie. –
@GertArnold Mam zaktualizowane pytanie, chciałbym zautomatyzować ten proces, więc może nie być bardzo wygodne ręczne kompilowanie kodu źródłowego lub ręczne uruchamianie narzędzia – username