Proyectos Python
El runner reconoce un proyecto Python por el pytest.ini en la raíz del repositorio y ejecuta:
uv run pytest tests/test_proton_script.py::test_run_proton_execution --id_dataset_run=<id>
uv
La máquina necesita uv en el PATH del usuario que ejecuta el runner. En la primera
ejecución, uv instala las dependencias del proyecto y el Python que pide el proyecto (3.10 o más reciente), cuando la
máquina no lo tiene.
- Windows
- Linux
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
curl -LsSf https://astral.sh/uv/install.sh | sh
Abre una terminal nueva y comprueba:
uv --version
Después de instalar, reinicia el Runner: lee el PATH al abrirse.
Por plataforma
| Plataforma del proyecto | Qué más necesita la máquina |
|---|---|
| API | Nada más que uv. |
| Web (Playwright) | Nada en Windows: el navegador Chromium de Playwright se descarga en la primera ejecución. En Linux, las bibliotecas del sistema que usa el navegador (abajo). |
| Mobile (Android) | adb, Appium y el dispositivo. Ver Mobile (Android). |
| SAP GUI | Windows, SAP GUI con el scripting habilitado y el Runner en la sesión del usuario. Ver SAP GUI. |
| Desktop (Windows) | Windows y el Runner en la sesión del usuario, con la pantalla desbloqueada. |
En Linux, instala una vez las bibliotecas del navegador (el comando pide la contraseña de administrador):
uvx playwright install-deps chromium
Automatizaciones de escritorio y de SAP GUI
Las automatizaciones que interactúan con ventanas de Windows (pywinauto y SAP GUI Scripting) necesitan una sesión de usuario abierta y desbloqueada:
- ejecuta el Proton Runner con el mismo usuario de Windows en el que se van a abrir las ventanas;
- en una máquina virtual, deja la sesión abierta y sin bloqueo de pantalla;
- una sesión de escritorio remoto minimizada o desconectada puede detener la automatización: es mejor dejar la sesión abierta en la consola de la máquina virtual.
Ejecutar en la máquina antes del runner
Para comprobar la máquina, ejecuta el proyecto en ella, sin Proton, como enseña el proyecto modelo:
uv sync
uv run pytest
Si pasa en la terminal con el mismo usuario de Windows, va a pasar por el runner.