Для моего третьего выпуска для Hacktoberfest я решил внести свой вклад в Codelab projec. Codelab — это веб-приложение, созданное на Angular, которое предлагает бесплатные интерактивные учебные пособия для изучения Angular и TypeScript. В этом сообщении в блоге будет кратко рассказано о том, как я решил эту проблему и что я узнал в процессе.

Объяснение проблемы

Эта проблема указывает на необходимость переноса тестов проекта с Karma на Jest. В проекте Codelab есть много тестов, которые запускаются с помощью средства запуска тестов Karma. Но средство запуска тестов Karma работает медленно по сравнению с фреймворком тестирования Jest. Поэтому эта проблема была открыта, чтобы помочь реорганизовать все тесты для использования Jest.

Процесс

Чтобы начать работу, я сначала прочитал руководство по внесению вклада и настроил свою среду разработки. Инструментами разработки, необходимыми для этого проекта, были Node.js, Angular и NX (Extensible Dev Tools for Monorepos). Проект основан на фреймворке Angular. Поскольку проблема связана с миграцией кода, я решил, что мне придется сузить тестовые файлы, которые необходимо реорганизовать. Поэтому я использовал функцию поиска файлов в GitHub, чтобы определить количество файлов с расширением ‘.spec.ts’, т.е. тесты написаны с помощью Karma. Я обнаружил, что таких тестов было более 50.

Учитывая объем работы и время, необходимое для переноса всех тестов, я обсудил с автором проблемы, можем ли мы разделить работу по приложениям (поскольку в этом одном репозитории объединено пять приложений). Мне пришлось прочитать о сходствах и различиях между средством запуска тестов Karma и Jest, просмотрев их документацию. Затем я начал переносить тесты из основного приложения codelab. Я планировал открыть запрос на вытягивание, как только мои рефакторинговые тесты успешно пройдут без снижения текущего уровня покрытия кода. Но, к сожалению для меня, другой участник открыл запрос на включение, чтобы исправить эту проблему, хотя она была назначена мне. Так что я закончил тем, что выполнял избыточную работу по этой проблеме. Но я получил некоторое представление о том, как работает средство запуска тестов Karma и среда Jest. Поэтому я перечислил свои результаты обучения ниже.

Результаты обучения

  1. Пересмотрено, как разрабатывать веб-приложения с помощью Angular.
  2. Научился пользоваться инструментом разработки NX.
  3. Научился пользоваться бегуном тестов Karma.
  4. Научился писать тесты с помощью фреймворка Jest.