Pruebas asistidas por IA para aplicaciones de Windows

Los comandos winapp ui y la habilidad winui-ui-testing permiten que tu agente de IA inspeccione, interactúe con la interfaz de usuario de tu aplicación y la valide automáticamente, describiendo lo que ve en lenguaje natural para que puedas iterar sin escribir primero código de infraestructura de pruebas.

Comandos de inspección de la interfaz de usuario

La habilidad winui-ui-testing está incluida en el complemento winui@awesome-copilot. Si instaló el complemento durante la instalación, no se requiere ninguna instalación adicional.

Command Qué hace
winapp ui inspect Genera un volcado del árbol de accesibilidad de la aplicación en ejecución
winapp ui screenshot Captura una captura de pantalla de la ventana de la aplicación
winapp ui click <selector> Hace clic en un botón o selecciona un elemento
winapp ui invoke <selector> Invoca la acción predeterminada en un control
winapp ui search <text> Busca en el árbol de elementos por nombre o AutomationId
winapp ui set-value <selector> <value> Establece el valor de un TextBox o ComboBox

Pida al agente que pruebe la aplicación.

  1. Ejecute la aplicación:
    dotnet run
    
  2. Pregunte a su agente una pregunta en lenguaje natural, como:

    "Examine la aplicación en ejecución y dígame si el botón Guardar es accesible cuando el formulario está vacío".

  3. El agente usa winapp ui inspect y winapp ui screenshot para examinar la aplicación y responder.

Este flujo de trabajo le permite detectar problemas (falta el foco del teclado, los controles deshabilitados, los problemas de diseño) antes de escribir una sola línea de código de prueba.

Escribir pruebas automatizadas

Una vez que haya explorado la aplicación de forma interactiva, pida al agente que genere pruebas formales. Usa este prompt inicial:

Write an xUnit UI test for my WinUI 3 app that:
1. Launches the app with dotnet run
2. Verifies the main window title is "My App"
3. Clicks the button with AutomationId "SaveButton"
4. Verifies a success message appears
Use the winapp ui commands for element interaction.

Las pruebas generadas usan winapp ui comandos como capa de interacción, por lo que se ejecutan sin un marco de automatización de la interfaz de usuario independiente.

Establecer AutomationIds en XAML

Para que winapp ui click pueda dirigirse a los elementos de forma fiable, establezca AutomationProperties.AutomationId en su XAML:

<Button AutomationProperties.AutomationId="SaveButton"
        Content="Save" />
<TextBox AutomationProperties.AutomationId="TitleInput" />

Pregunta al agente: "Agrega atributos AutomationId a todos los controles interactivos de este XAML."

Ejecuta pruebas en CI

Puede ejecutar winapp ui comandos en un flujo de trabajo de Acciones de GitHub. Las pruebas requieren una sesión gráfica; use un ejecutor de Windows con runs-on: windows-latest.

name: UI tests
on: [push, pull_request]
jobs:
  ui-test:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '9.0.x'
      - name: Install winapp CLI
        run: winget install --id Microsoft.WinAppCLI --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
      - name: Build
        run: dotnet build
      - name: Run UI tests
        run: dotnet test --filter Category=UITest

Note

Los winapp ui comandos interactúan con el árbol de accesibilidad activa de un proceso en ejecución. Las pruebas deben abrir la aplicación como parte de la configuración de la prueba (o en un paso TestInitialize) y cerrarla durante la fase de desmontaje.

Comprobación automática de la accesibilidad

El winapp ui inspect comando genera el árbol de accesibilidad completo: nombres de elementos, tipos, estados y AutomationIds. Pida al agente que lo revise para ver las brechas de accesibilidad:

Run "winapp ui inspect" on the running app and identify any issues:
- Controls without accessible names
- Missing keyboard focus order
- Buttons or links that aren't reachable by Tab
Report findings as a prioritized list, most critical first.

Este mensaje funciona bien como una revisión de accesibilidad de primer paso antes de ejecutar una herramienta de auditoría formal. Para obtener una lista de comprobación de accesibilidad completa, consulte Introducción a la accesibilidad para Windows aplicaciones.