Перехваты beforeAll и AfterAll в отдельном драгоценном камне

#ruby #rspec

#ruby #rspec

Вопрос:

Предыстория: У нас есть monorepo сервисов, и каждый сервис имеет модульные тесты и выполняет свои собственные тесты, используя rspec, например:

 repo/appA/spec/*_spec.rb
repo/appB/spec/*_spec.rb
repo/appC/subserviceD/spec/*_spec.rb
repo/appC/subserviceE/spec/*_spec.rb
  

Моя цель:
В качестве предисловия, я новичок в экосистеме Ruby, но я хотел бы настроить отдельный gem (изолированный репозиторий из monorepo), который отвечает за запуск некоторого кода после завершения спецификации, в основном rspec afterall hook, или в любое время после завершения тестов.

Для всех, кто знаком с экосистемой Python / pytest, это в основном аналогично написанию «плагина pytest», где вы можете добавить дополнительные функциональные возможности к существующим хукам.

Вопрос:

  • Возможно ли создать afterall перехват RSpec (или что-то в этом роде) в отдельном gem, и любой код, который импортирует этот gem, автоматически применяет перехват после запуска их тестов?

Заранее благодарю вас!

Комментарии:

1. Есть ли у вас отдельный вспомогательный файл спецификации? Если это так, вы могли бы вызвать метод драгоценного камня оттуда

2. @maxpleaner При просмотре документов rspec , похоже, что помощники спецификации попадают в spec/helper папки с импортом require "spec_helper" . Означает ли это, что мы могли бы написать вспомогательную спецификацию в нашем gem с соответствующими реализованными хуками и просто импортировать ее с чем-то вроде require mygem/helper ?

3. стоит попробовать