Настроить скриншот папки в Cypress - PullRequest
1 голос
/ 19 марта 2019

Я использую Cypress в качестве моей инфраструктуры автоматизации тестирования пользовательского интерфейса.
В настоящее время структура моей папки для spec-файла (логическая организация тестовых файлов):

~ / MyAccount / заголовок / header.spec.js

~ / MyAccount / сноска / footer.spec.js

~ / MyAccount / mainTabs / home.spec.js

и так далее ...
Теперь, когда я настраиваю свою папку со скриншотами в cypress.json для скриншотов и сохраняю скриншоты неудачных тестовых случаев, Cypress внутренне создает структуру папок внутри папки со скриншотами. Например, если тест не пройден в файле footer.spec.js, он сохраняет снимок экрана в

~ / скриншоты / MyAccount / сноска / footer.spec.js

Я хочу избавиться от этой рекурсивной структуры папок и сохранить все скриншоты в папке скриншотов (чтобы я мог легко получить доступ к этим скриншотам и добавить их в свой замечательный отчет).
Есть ли способ сделать это? Буду признателен за любую помощь, и дайте мне знать, если я не смог правильно задать свой вопрос. Я готов добавить больше информации.

1 Ответ

1 голос
/ 19 марта 2019

Да, вы можете использовать Cypress скриншот API :

, например:

// cypress/plugins/index.js

const fs = require('fs')

module.exports = (on, config) => {
  on('after:screenshot', (details) => {
    // details will look something like this:
    // {
    //   size: 10248
    //   takenAt: '2018-06-27T20:17:19.537Z'
    //   duration: 4071
    //   dimensions: { width: 1000, height: 660 }
    //   multipart: false
    //   pixelRatio: 1
    //   name: 'my-screenshot'
    //   specName: 'integration/my-spec.js'
    //   testFailure: true
    //   path: '/path/to/my-screenshot.png'
    //   scaled: true
    //   blackout: []
    // }

    // example of renaming the screenshot file

    const newPath = '/new/path/to/screenshot.png'

    return new Promise((resolve, reject) => {
      fs.rename(details.path, newPath, (err) => {
        if (err) return reject(err)

        // because we renamed/moved the image, resolve with the new path
        // so it is accurate in the test results
        resolve({ path: newPath })
      })
    })
  })
}

Вы также можете создавать символические ссылки, если хотите, чтобы изображение внапример, в двух местах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...