Kiszolgáló mód

Az MTP-kiszolgáló mód lehetővé teszi, hogy egy szerkesztő, IDE vagy más teszteszköz elindítson egy tesztalkalmazást, és a JSON-RPC-n keresztül vezesse a felderítést és a végrehajtást. Kiszolgáló mód használata az MTP körüli eszközépítéshez. Normál parancssori és CI-futtatások esetén futtassa közvetlenül a tesztalkalmazást, vagy használja dotnet test.

Indítsa el a nyilvános JSON-RPC-kiszolgálót a --server jsonrpc vagy --server használatával.

Important

A .NET SDK egy külön belső bináris protokollt használ.--server dotnettestcli Ne adja át ezt az értéket. dotnet test konfigurálja az átviteli és protokollargumentumokat.

Csak forrásként használt ügyfélprogram használata

Az MTP 2.4.0-tól a Microsoft.Testing.Platform.ServerMode.Client.Sources csomag egy kanonikus ügyfélprogramot biztosít a JSON-RPC protokollhoz. A csomag futásidejű szerelvény hozzáadása helyett C#-forrást injektál a projektbe.

A csak forrásoldali kialakítás a következőket biztosítja:

  • Nincs futtatókörnyezeti DLL vagy további üzembehelyezési függőség.
  • Natív AOT-kompatibilis, tükröződésmentes szerializálás.
  • Az MTP-kiszolgálóval azonos adattárból származó protokolltípusok és szerializálási kód.

Az injektált MtpServerClient és IMtpServerClient a típusok inicializálhatják a kapcsolatot, felderíthetik a teszteket, teszteket futtathatnak, kérelmezhetik a kiszolgáló kilépését, és jelentést készíthetnek a tesztcsomópont frissítéséről. A típusok a szerelvényen maradnak internal .

Ügyfélkövetelményeknek való megfelelés

Használja a C# 12 vagy újabb verziót. A csomag akkor állítja be LangVersion , 12.0 ha a projekt nem ad meg nyelvi verziót. A .NET Framework 4.6.2 és netstandard2.0 számára belső kompatibilitási típusokat is biztosít.

A csomag hozzáadása előtt távolítsa el az MTP-ügyfél kézzel írt másolatát a duplikált belső típusok elkerülése érdekében.

Kapcsolati viselkedés kiválasztása

Állítsa be MtpServerClientOptions.IsStateful , hogy meg tudja mondani a kiszolgálónak, hogy az ügyfél megőrzi-e az állapotot a kérések között:

  • Hagyja az értéket false egyetlen felderítési vagy végrehajtási kéréshez, majd lépjen ki.
  • Állítsa be az értéket true egy olyan szerkesztő- vagy IDE-munkamenetre, amely több kérelmet küld ugyanazon a kapcsolaton keresztül.

Az ügyfél ezt a beállítást a kísérleti capabilities.testing.isStateful protokoll képességein keresztül küldi el.

Lásd még