run-e2e-tests

Jalankan tes E2E untuk memverifikasi alur kerja pengguna secara lengkap seperti penemuan, pembuatan, dan pemilihan lingkungan. Gunakan ini sebelum rilis atau setelah perubahan besar.

npx skills add https://github.com/microsoft/vscode-python-environments --skill run-e2e-tests

Run E2E (end-to-end) tests to verify complete user workflows work correctly.

When to Use This Skill

  • Before submitting a PR with significant changes
  • After modifying environment discovery, creation, or selection logic
  • Before a release to validate full workflows
  • When user reports a workflow is broken

Note: Run smoke tests first. If smoke tests fail, E2E tests will also fail.

Quick Reference

ActionCommand
Run all E2E testsnpm run compile && npm run compile-tests && npm run e2e-test
Run specific testnpm run e2e-test -- --grep "discovers"
Debug in VS CodeDebug panel → "E2E Tests" → F5

How E2E Tests Work

Unlike unit tests (mocked) and smoke tests (quick checks), E2E tests:

  1. Launch a real VS Code instance with the extension
  2. Exercise complete user workflows via the real API
  3. Verify end-to-end behavior (discovery → selection → execution)

They take longer (1-3 minutes) but catch integration issues.

Workflow

Step 1: Compile and Run

npm run compile && npm run compile-tests && npm run e2e-test

Step 2: Interpret Results

Pass:

  E2E: Environment Discovery
    ✓ Can trigger environment refresh
    ✓ Discovers at least one environment
    ✓ Environments have required properties
    ✓ Can get global environments

  4 passing (45s)

Fail: Check error message and see Debugging section.

Debugging Failures

ErrorCauseFix
No environments discoveredPython not installedInstall Python, verify it's on PATH
Extension not foundBuild failedRun npm run compile
API not availableActivation errorDebug with F5, check Debug Console
Timeout exceededSlow operation or hangIncrease timeout or check for blocking code

For detailed debugging: Debug panel → "E2E Tests" → F5

Prerequisites

E2E tests have system requirements:

  • Python installed - At least one Python interpreter must be discoverable
  • Extension builds - Run npm run compile before tests
  • CI needs webpack build - Run npm run compile (webpack) before tests, not just npm run compile-tests (tsc)

Adding New E2E Tests

Create files in src/test/e2e/ with pattern *.e2e.test.ts:

import * as assert from 'assert';
import * as vscode from 'vscode';
import { waitForCondition } from '../testUtils';
import { ENVS_EXTENSION_ID } from '../constants';

suite('E2E: [Workflow Name]', function () {
    this.timeout(120_000); // 2 minutes

    let api: ExtensionApi;

    suiteSetup(async function () {
        const extension = vscode.extensions.getExtension(ENVS_EXTENSION_ID);
        assert.ok(extension, 'Extension not found');
        if (!extension.isActive) await extension.activate();
        api = extension.exports;
    });

    test('[Test description]', async function () {
        // Use real API (flat structure, not nested!)
        // api.getEnvironments(), not api.environments.getEnvironments()
        await waitForCondition(
            async () => (await api.getEnvironments('all')).length > 0,
            60_000,
            'No environments found',
        );
    });
});

Test Files

FilePurpose
src/test/e2e/environmentDiscovery.e2e.test.tsDiscovery workflow tests
src/test/e2e/index.tsTest runner entry point
src/test/testUtils.tsUtilities (waitForCondition, etc.)

Notes

  • E2E tests are slower than smoke tests (expect 1-3 minutes)
  • They may create/modify files - cleanup happens in suiteTeardown
  • First run downloads VS Code (~100MB, cached in .vscode-test/)
  • For more details on E2E tests and how they compare to other test types, refer to the project's testing documentation.

Lebih banyak skill dari microsoft

oss-growth
microsoft
Persona peretas pertumbuhan OSS
agent-framework-azure-ai-py
microsoft
Bangun agen Azure AI Foundry menggunakan Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Gunakan saat membuat agen persisten dengan AzureAIAgentsProvider, menggunakan alat yang dihosting (code interpreter, file search, web search), mengintegrasikan server MCP, mengelola utas percakapan, atau mengimplementasikan respons streaming. Mencakup alat fungsi, keluaran terstruktur, dan agen multi-alat.
development
airunway-aks-setup
microsoft
Siapkan AI Runway di AKS — dari klaster kosong hingga model berjalan. Mencakup verifikasi klaster, instalasi controller, penilaian GPU, penyiapan penyedia, dan deployment pertama. KAPAN: "setup AI Runway", "onboard AKS cluster", "install AI Runway", "airunway setup", "deploy model to AKS", "GPU inference on AKS", "KAITO setup on AKS", "run LLM on AKS", "vLLM on AKS", "set up model serving on AKS", "AI Runway controller".
devops
appinsights-instrumentation
microsoft
Panduan untuk instrumentasi aplikasi web dengan Azure Application Insights. Menyediakan pola telemetri, pengaturan SDK, dan referensi konfigurasi. KAPAN: cara menginstrumentasi aplikasi, SDK App Insights, pola telemetri, apa itu App Insights, panduan Application Insights, contoh instrumentasi, praktik terbaik APM.
devops
applicationinsights-web-ts
microsoft
Instrumentasi aplikasi browser/web dengan Application Insights JavaScript SDK (@microsoft/applicationinsights-web). Digunakan untuk Real User Monitoring (RUM) — tampilan halaman, klik, dependensi AJAX/fetch, pengecualian, peristiwa kustom, dan jejak agen GenAI sisi browser yang dikorelasikan dengan jejak OpenTelemetry backend. Mencakup pengaturan SDK Loader Script dan npm, ekstensi kerangka kerja (React, React Native, Angular), Click Analytics, inisialisasi telemetri, dan konvensi semantik OTel GenAI untuk span agen/alat/model yang dipancarkan dari browser.
devops
azure-ai-anomalydetector-java
microsoft
Bangun aplikasi deteksi anomali dengan Azure AI Anomaly Detector SDK untuk Java. Gunakan saat mengimplementasikan deteksi anomali univariat/multivariat, analisis deret waktu, atau pemantauan bertenaga AI.
development
azure-ai-language-conversations-py
microsoft
Implementasikan Pemahaman Bahasa Percakapan (CLU) menggunakan SDK Python azure-ai-language-conversations. Gunakan saat bekerja dengan ConversationAnalysisClient untuk menganalisis maksud dan entitas percakapan, membangun fitur NLP, atau mengintegrasikan pemahaman bahasa ke dalam aplikasi.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 untuk Python. Gunakan untuk ruang kerja ML, pekerjaan, model, kumpulan data, komputasi, dan pipeline. Pemicu: "azure-ai-ml", "MLClient", "ruang kerja", "registri model", "pekerjaan pelatihan", "kumpulan data".
development