Mi dramaturgo.config.ts incluye:
use: { ... screenshot: 'only-on-failure', }y las fallas de prueba dan como resultado que las capturas de pantalla se guarden en /test-results cuando fallan localmente. Pero cuando las pruebas fallan cuando se ejecutan en Github Actions, no se toman capturas de pantalla. Por lo tanto, es imposible para mí saber qué es lo que va mal en mis pruebas, que pasan bien localmente.
Las únicas partes específicas de CI de mi configuración son:
/* Fail the build on CI if you accidentally left test.only in the source code. */ forbidOnly: !!process.env.CI, /* Retry on CI only */ retries: process.env.CI ? 2 : 0, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ reporter: process.env.CI ? 'github' : 'list',ETA: mi action.yml intenta cargar la carpeta /test-results pero siempre está completamente vacía, ya que no se tomaron capturas de pantalla:
- uses: actions/upload-artifact@v2 if: always() with: name: playwright-test-results path: test-results/// playwright.config.ts import { PlaywrightTestConfig, devices } from '@playwright/test'; const config: PlaywrightTestConfig = { forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 1, use: { trace: 'on', screenshot: 'only-on-failure', // Capture screenshot after each test failure. video: 'retain-on-failure', //Record video only when retrying a test for the first time. headless: true, viewport: { width: 1280, height: 720 }, baseURL: "https:xxxxx", launchOptions: { slowMo: 50, logger: { isEnabled: (name, severity) => name === 'browser', log: (name, severity, message, args) => console.log(`${name} ${message}`) } }, actionTimeout: 10 * 1000, navigationTimeout: 30 * 1000 }, expect: { timeout: 10 * 1000 }, timeout: 90000, outputDir: `${__dirname}/build`, projects: [ { name: 'chromium', use: { ...devices['Desktop Chrome'] } } ], reporter: [ ['junit', { outputFile: 'build/results.xml' }], ['html', { outputFolder: 'build/html-report', open: 'never' }], ['list'] ] }; export default config; // .gitlab-ci.yml .e2e: stage: postdeploy image: xxxxx script: - pnpm xxx - pnpm nx test e2e // "test": "playwright test --output build --workers 2", after_script: - ls -l tests/e2e - cp -r tests/e2e/build ./results artifacts: when: always expire_in: never name: 'test-artifacts' paths: - results/html-report exclude: - results/results.xml reports: junit: results/results.xmlPodemos cargar la carpeta de resultados de prueba como un artefacto de ejecución usando la ejecución posterior del conjunto de acciones "upload-artifact" de GitHub.
Alternativamente, se puede agregar un paso en el flujo de trabajo después de la ejecución de la prueba para cargar las imágenes en la ubicación deseada.