Share via


Nasıl yapılır: Azure Fluid Relay ile test otomasyonu kullanma

Test ve otomasyon, kodunuzun kalitesini ve uzun ömürlülüğünü korumak için çok önemlidir. Fluid, dahili olarak Mocha, Jest, Puppeteer ve Webpack tarafından desteklenen bir dizi birim ve tümleştirme testi kullanır.

Testleri yerel @fluidframework/azure-local-service kullanarak veya Azure Fluid Relay hizmetinde bir test kiracısı kullanarak çalıştırabilirsiniz. AzureClient, canlı ve yerel hizmet örneklerine karşı testler arasında tek bir istemci türü kullanmanıza olanak tanıyan hem uzak hizmete hem de yerel hizmete bağlanacak şekilde yapılandırılabilir. Tek fark, istemciyi oluşturmak için kullanılan yapılandırmadır.

Azure Fluid Relay'e karşı otomasyon

Otomasyonunuz, üretim kiracısı ile aynı şekilde Azure Fluid Relay için test kiracısına bağlanabilir ve yalnızca uygun bağlantı yapılandırmasına ihtiyaç duyar. Daha fazla bilgi için bkz. Nasıl yapılır: Azure Fluid Relay hizmetine Bağlan.

Uyarlanabilir test istemcisi oluşturma

Uyarlanabilir bir test istemcisi oluşturmak için AzureClient'ı hizmet hedefine bağlı olarak farklı şekilde yapılandırmanız gerekir. Aşağıdaki işlev bunu belirlemek için bir ortam değişkeni kullanır. Hedeflenen hizmeti denetlemek için bir test betiğinde ortam değişkenini ayarlayabilirsiniz.

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);
}

Testleriniz bu işlevi çağırarak temel alınan hizmetle ilgilenmeden bir AzureClient nesnesi oluşturabilir. Aşağıdaki Mocha testi, herhangi bir testi çalıştırmadan önce hizmet istemcisini oluşturur ve ardından her testi çalıştırmak için bunu kullanır. Hata oluşturulmadığı sürece geçen bir kapsayıcı oluşturmak için hizmet istemcisini kullanan tek bir test vardır.

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);
    });
});

Testleri çalıştırma

Testleri çalıştırmak için projenizin package.json dosyasına aşağıdaki npm betiklerini ekleyebilirsiniz:

"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"
}

Yukarıdaki betiklerin gerektirdiği bağımlılıkları yüklemek için aşağıdaki komutu kullanabilirsiniz:

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

Betiktest:local, yerel sunucuyu başlatmak, 7070 numaralı bağlantı noktası (yerel sunucu tarafından kullanılan varsayılan bağlantı noktası) yanıt verene kadar beklemek, test betiğini çalıştırmak ve ardından yerel sunucuyu sonlandırmak için start-server-and-test kitaplığını kullanır.