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


Útmutató: Tesztautomatizálás használata az Azure Fluid Relayrel

A tesztelés és az automatizálás elengedhetetlen a kód minőségének és élettartamának fenntartásához. A Fluid belsőleg számos egység- és integrációs tesztet használ, amelyeket a Mocha, a Jest, a Puppeteer és a Webpack hajt.

A teszteket a helyi @fluidframework/azure-local-service vagy egy tesztbérlelő használatával futtathatja az Azure Fluid Relay szolgáltatásban. Az AzureClient úgy konfigurálható, hogy egy távoli szolgáltatáshoz és egy helyi szolgáltatáshoz is csatlakozzon, így egyetlen ügyféltípust használhat az élő és a helyi szolgáltatáspéldányok tesztjei között. Az egyetlen különbség az ügyfél létrehozásához használt konfiguráció.

Automatizálás az Azure Fluid Relay ellen

Az automatizálás ugyanúgy tud csatlakozni az Azure Fluid Relay tesztelési bérlőjéhez, mint egy éles bérlőhöz, és csak a megfelelő kapcsolatkonfigurációra van szüksége. További részletekért lásd: Csatlakozás az Azure Fluid Relay szolgáltatáshoz.

Adaptálható tesztügyfél létrehozása

Egy adaptálható tesztügyfél létrehozásához a szolgáltatás céljától függően másképpen kell konfigurálnia az AzureClientet. Az alábbi függvény egy környezeti változót használ ennek meghatározásához. A környezeti változót egy tesztszkriptben állíthatja be, hogy szabályozza, melyik szolgáltatást célozza meg.

function createAzureClient(): AzureClient {
    const useAzure = process.env.FLUID_CLIENT === "azure";
    const tenantKey = useAzure ? process.env.FLUID_TENANTKEY as string : "";
    const user = { id: "userId", name: "Test User" };

    const connectionConfig = useAzure ? {
        type: "remote",
        tenantId: "myTenantId",
        tokenProvider: new InsecureTokenProvider(tenantKey, user),
        endpoint: "https://myServiceEndpointUrl",
    } : {
        type: "local",
        tokenProvider: new InsecureTokenProvider("", user),
        endpoint: "http://localhost:7070",
    };
    const clientProps = {
        connection: config,
    };

    return new AzureClient(clientProps);
}

A tesztek meghívhatják ezt a függvényt egy AzureClient-objektum létrehozásához anélkül, hogy a mögöttes szolgáltatással kapcsolatban aggódnak. Az alábbi Mocha-teszt létrehozza a szolgáltatásügyfélt a tesztek futtatása előtt, majd az egyes tesztek futtatásához használja. Egyetlen teszt van, amely a szolgáltatásügyfél használatával hoz létre egy tárolót, amely addig tart, amíg nem történik hiba.

describe("ClientTest", () => {
    const client = createAzureClient();
    let documentId: string;

    it("can create Azure container successfully", async () => {
        const schema: ContainerSchema = {
            initialObjects: {
                customMap: SharedMap
            },
        };
        documentId = await container.attach();
        const { container, services } = await azureClient.createContainer(schema);
    });
});

Tesztek futtatása

A tesztek futtatásához hozzáadhatja a következő npm-szkripteket a projekt package.json fájljában:

"scripts": {
    "start:local": "npx @fluidframework/azure-local-service@latest > local-service.log 2>&1",
    "test:mocha": "mocha",
    "test:azure": "cross-env process.env.FLUID_CLIENT='\"azure\"' && npm run test:mocha",
    "test:local": "start-server-and-test start:local 7070 test:mocha"
}

A fenti szkriptek által igényelt függőségek telepítéséhez használja a következő parancsot:

npm install cross-env start-server-and-test mocha

A test:local szkript a start-server-and-test kódtár használatával indítja el a helyi kiszolgálót, várjon, amíg a 7070-s port (a helyi kiszolgáló által használt alapértelmezett port) válaszol, futtassa a tesztszkriptet, majd állítsa le a helyi kiszolgálót.