Bagikan melalui


Cara: Menggunakan otomatisasi uji dengan Azure Fluid Relay

Pengujian dan otomatisasi sangat penting untuk menjaga kualitas dan keberlangsungan kode Anda. Secara internal, Fluid menggunakan berbagai unit dan uji integrasi yang didukung oleh Mocha, Jest, Puppeteer, dan Webpack.

Anda dapat menjalankan pengujian menggunakan @fluidframework lokal /azure-local-service atau menggunakan penyewa pengujian di layanan Azure Fluid Relay. AzureClient dapat dikonfigurasi untuk terhubung ke layanan jarak jauh dan layanan lokal, sehingga memungkinkan Anda menggunakan jenis klien tunggal di antara pengujian terhadap instans layanan langsung dan lokal. Perbedaannya hanyalah konfigurasi yang digunakan untuk membuat klien.

Otomatisasi pada Azure Fluid Relay

Otomatisasi Anda dapat terhubung ke penyewa pengujian untuk Azure Fluid Relay dengan cara yang sama seperti penyewa produksi dan hanya membutuhkan konfigurasi koneksi yang sesuai. Lihat Cara: Menyambungkan ke layanan Azure Fluid Relay untuk detail selengkapnya.

Membuat klien pengujian yang mudah beradaptasi

Untuk membuat klien pengujian yang dapat disesuaikan, Anda perlu mengonfigurasi AzureClient secara berbeda tergantung pada target layanan. Fungsi di bawah ini menggunakan variabel lingkungan untuk menentukan hal ini. Anda dapat mengatur variabel lingkungan dalam skrip pengujian untuk mengontrol layanan yang ditargetkan.

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

Pengujian Anda dapat memanggil fungsi ini untuk membuat objek AzureClient tanpa memperhatikan dirinya sendiri tentang layanan yang mendasarinya. Pengujian Mocha di bawah ini menciptakan klien layanan sebelum menjalankan tes apa pun, lalu menggunakannya untuk menjalankan setiap pengujian. Ada satu pengujian yang menggunakan klien layanan untuk membuat kontainer yang lolos selama tidak ada kesalahan yang dilemparkan.

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

Menjalankan pengujian

Anda dapat menambahkan skrip npm berikut di paket proyek .json untuk menjalankan pengujian:

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

Untuk menginstal dependensi yang diperlukan oleh skrip di atas, Anda dapat menggunakan perintah berikut:

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

Skrip test:local menggunakan pustaka start-server-and-test untuk memulai server lokal, tunggu hingga port 7070 (port default yang digunakan oleh server lokal) merespons, menjalankan skrip pengujian, lalu mengakhiri server lokal.