Giter VIP home page Giter VIP logo

Comments (7)

eGavr avatar eGavr commented on May 30, 2024

Здравствуй!

Сперва думал что как в gemini, при первом запуске собираются, а при повторном сравниваются - но видимо нет

В gemini не так работает. В gemini сначала необходимо запустить инструмент:

gemini update

И эта команда сохранит эталонные скриншоты

А затем необходимо выполнить

gemini test

В случае с hermione необходимо использовать опции --update-refs.
Тогда инструмент снимет эталонные скриншоты.
Затем уже можно запускать без этой опции.

Вообще вместо опции --update-refs лучше использовать hermione gui, который подключается как плагин.

Вот документация как подключать плагины.

from testplane.

eGavr avatar eGavr commented on May 30, 2024

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

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

from testplane.

doppelganger23 avatar doppelganger23 commented on May 30, 2024

Привет. Спасибо за быстрый отклик.

gemini update

Да, знаю, c gemini так и делал. А с гермионой не нашел информации как нужно, так тоже пробовал - не прокатило.

В случае с hermione необходимо использовать опции --update-refs.

Вот этого не знал. Неплохо было бы это в README добавить.

Вообще вместо опции --update-refs лучше использовать hermione gui, который подключается как плагин.

А html-reporter я уже подключал к gemini, когда пробовал этот фреймворк.
Т.е. само подключение его как плагина убирает необходимость передавать опцию --update-refs?

Тут нужен минимально воспроизводимый кейс проблемы

Ок, завтра попробую набросать минимальный вариант.

from testplane.

doppelganger23 avatar doppelganger23 commented on May 30, 2024

нужен минимально воспроизводимый кейс проблемы

Вот мой файл конфигурации (.hermione.conf.js в корне проекта):

module.exports = {
  sets: {
    all: {
      files: 'test/hermione/spec/**/*.spec.js'
    }
  },

  baseUrl: 'http://localhost:8080',
  waitTimeout: 10000,
  screenshotPath: 'test/screens',

  browsers: {
    chrome: {
      desiredCapabilities: {
        browserName: 'chrome'
      }
    }
  },

};

Теперь все работает нормально, но скриншоты попадают в директорию hermione в корне проекта, а не в папку test.

Гермиону установил локально, запускаю командой
node node_modules/hermione/bin/hermione --update-refs

В тесте вызываю методы так:
.assertView('plain', selector)

from testplane.

eGavr avatar eGavr commented on May 30, 2024

Вот этого не знал. Неплохо было бы это в README добавить.

Приносим извинения за сырую документацию по этому методу, в ближайшее время добавим.

А html-reporter я уже подключал к gemini, когда пробовал этот фреймворк.
Т.е. само подключение его как плагина убирает необходимость передавать опцию --update-refs?

Да, при использовании команды gui из плагина html-reporter можно не запускать hermione с опцией --update-refs. Скажем так.. одновременное использование этой опции и gui будет конфликтовать в каком-то смысле этого слова, так как --update-refs будет иметь больший приоритет, и при запуске gui тесты всегда будут проходить, а скриншоты пересниматься безусловно. gui же позволяет предварительно посмотреть глазами, что будет сохранено в качестве эталона.

Теперь все работает нормально, но скриншоты попадают в директорию hermione в корне проекта, а не в папку test.

Еще раз приношу извинения, что в доке этого не было.

В конфиге выше вижу, что используется screenshotPath. Эта опция по смыслу отвечает не за то, куда будут сохраняться эталоны, а за то, куда будут сохраняться скриншоты при вызове метода saveScreenshot в тесте (к методу assertView он не имеет никакого отношения, этот метод просто снимает скриншот всей страницы и ни с чем его не сравнивает).

Чтобы сконфигурировать сохранение скриншотов в определенную папку, необходимо использовать опцию screenshotsDir, которая может принимать строку или функцию.

from testplane.

doppelganger23 avatar doppelganger23 commented on May 30, 2024

Большое спасибо за пояснения.
Рад что помог вам улучшить документацию, фреймворк у вас очень удобный, если знать все тонкости)

from testplane.

eGavr avatar eGavr commented on May 30, 2024

#316

from testplane.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.