Megosztás a következőn keresztül:


Egyéni bővítmények létrehozása

Ez a cikk a Microsoft.Testing.Platform egyéni tesztelési keretrendszereit vagy bővítményeit készítő fejlesztők számára készült.

Jegyzet

A teljes mintakódot a Microsoft Test Framework adattárában található TestingPlatformExamples tekintheti meg.

Bővítménypont összefoglalása

Bővítménypont Folyamaton belül/folyamaton kívül Cél
ITestFramework Folyamatban Az egyetlen kötelező bővítmény. Felismeri és futtatja a teszteket.
IDataConsumer Folyamatban Feliratkozik az üzenetbusz tesztadataira, és feldolgozza azokat.
ITestSessionLifetimeHandler Folyamatban A tesztmunkamenet előtt és után futtatja a kódot.
ITestApplicationLifecycleCallbacks Folyamatban A kódot a tesztgazda elején és végén futtatja.
ICommandLineOptionsProvider Mindkettő Egyéni parancssori beállításokat ad hozzá.
ITestHostEnvironmentVariableProvider Külön folyamatban Beállítja a környezeti változókat a tesztgazda elindítása előtt.
ITestHostProcessLifetimeHandler Külön folyamatban Külsőleg figyeli a tesztgazdafolyamatot.

Folyamatban lévő és folyamaton kívüli bővítmények

A bővítmények két típusba vannak kategorizálva:

  • A folyamaton belüli bővítmények a tesztgazdafolyamaton belül futnak a tesztelési keretrendszer mellett. Regisztrálja őket a builder.TestHost segítségével.

    var builder = await TestApplication.CreateBuilderAsync(args);
    builder.TestHost.AddXXX(/* ... */);
    
  • A folyamaton kívüli bővítmények egy külön folyamatban futnak, amely megfigyeli a teszt gazdagépet. Regisztrálja őket a builder.TestHostControllers segítségével.

    var builder = await TestApplication.CreateBuilderAsync(args);
    builder.TestHostControllers.AddXXX(/* ... */);
    

A folyamaton kívüli bővítményekre akkor van szükség, ha:

  • A tesztgazda elindítása előtt be kell állítania a környezeti változókat.
  • A teszt gazdagépet külsőleg kell figyelnie, mert előfordulhat, hogy a felhasználói kód összeomlik vagy lefagy a folyamat.

Ha bármilyen folyamaton kívüli bővítmény regisztrálva van, a platform automatikusan elindít egy második folyamatot.

A IExtension felület

Az összes bővítménypont öröklik a IExtension elemet, amely azonosítást és az opció bekapcsolását/kikapcsolását biztosítja:

public interface IExtension
{
    string Uid { get; }
    string Version { get; }
    string DisplayName { get; }
    string Description { get; }
    Task<bool> IsEnabledAsync();
}
  • Uid: A bővítmény egyedi azonosítója. Válasszon egyedi értéket az ütközések elkerülése érdekében.
  • Version: A bővítmény verziója szemantikai verziószámozással.
  • DisplayName: A naplókban és --info kimenetekben megjelenő felhasználóbarát név.
  • Description: A kimenetben --info megjelenő leírás.
  • IsEnabledAsync(): Térjen vissza false a bővítmény kizárására a munkamenetből. A döntések általában konfiguráción vagy parancssori beállításokon alapulnak.
  • Tesztkeret létrehozása: Egyéni ITestFramework implementáció létrehozása, kérelmek kezelése és teszteredmények jelentése.
  • Buildbővítmények: Folyamaton belüli és folyamaton kívüli bővítmények, például adatfelhasználók, munkamenet-kezelők és folyamatfigyelők létrehozása.
  • VSTest-híd: A meglévő VSTest-alapú tesztelési keretrendszerek microsoft.testing.platformra való migrálásának egyszerűsítése.
  • Képességek: Keretrendszerek és bővítmények deklarálása és lekérdezése.
  • Szolgáltatások: Access konfiguráció, naplózás, üzenetbusz és egyéb platformszolgáltatások.