Мы построили Cityspire в качестве когорты Labspt-17 в школе лямбда, интерактивная платформа, которая является однократным ресурсом для пользователей, чтобы получить самую точную информацию о городе.
Я был частью 4-х лицов науки о данных, 2-х лицензирован, 1-лицом, 1-лицом IOS и 1-лицом дизайнерских ведущих команд, которые были поручены на построение в архитектуру Backend и обновляют наши UI, более приветствующие нашим пользователям Отказ
Поскольку мои товарищества по команде (DEV Frontend) построили новые функции из проекта Brown-Field, они получали много ошибок испытаний на PR GitHub, прежде чем объединять свои особенности ветвей к главной ветви, поэтому я вскочил, чтобы помочь. О, мальчик, был я в путешествии!
Предыдущая команда Labs решила использовать реагирование как лучший выбор для UI, и они решили использовать @ Craco/Craco. Я предполагаю, что из-за того, что исторически WebPack трудно использовать, и документация длинная, есть бесконечные возможности, и вам приходится иметь дело с большим количеством пакетов сообщества, чтобы оказаться оптимальной конфигурацией для вашего проекта. Добавить реагировать на смесь и сложность увеличивается 10x.
Ошибки отладки тестов не являются моей формой, поэтому у меня было много тревоги, идущей в опыт. Но я был настойчив к поощрениям из моих TPLS, CTO и удивительных товарищей по команде в лямбда-школе.
Что не так с WebPack?
Когда вы являетесь единственным созданием конфигурации для вашего нового веб-приложения, вы будете использовать WebPack. Вы можете подумать, что это не так уж в конце концов. Но когда вам нужно обновить свой веб-папак Config 5 месяцев спустя, вам придется начать все сначала и снова прочитать всю документацию.
Реактивное решение:
Вы можете использовать CRA для аннотации всей этой сложности. Через несколько минут у вас будет работать, почти пустой, реагированный проект с помощью разработки, производства и тестовых скриптов.
Но есть ограничения!
Реагистрация обеспечивает нулевую политику настройки. Вот список основных частей, которые вы не можете настроить:
- Варить
- Прилицины и плагины WebPack
- Webpack dev server.
- Postcss
- Eslint.
Это не хорошо для реальной жизни проекта с большой командой, поскольку вы не можете сказать члену команды, они не могут обновить библиотеку.
Был еще один раствор, называемый React-app-reware, но автор решил не обновлять пакет, поэтому Patrick Lafrance решил построить Craco.
Что такое круто о Крако?
КРАККО означает C Reate R воплощение A PP Конфигурация О Verride. Это «взлом» слой на вершине создания приложения RACT (CRA), чтобы настроить его конфигурацию.
Это достигается за счет переопределения кэш из требуется Вызывы CRA для замены экспортированного контента с помощью индивидуальной настройки.
create-raction-app +
Я хотел наш логотип и цвет, чтобы соответствовать спецификациям PM. Я смог легко загрузить изображение посадочной страницы PM на Canva и получить код RGB.
- Войдите в Canva.
- Загрузить изображение PM.
- Щелкните правой кнопкой мыши на UI для проверки.
- Скопируйте и вставьте: Фон-Цвет: RGB (171, 132, 165)
- Добавьте его в файл Search.js и стили импорта из библиотеки дизайна ANT.
Утечка отладки памяти в Github Jest Suite
При обновлении стилей компонента на странице посадки и другие строки кода (см. Ниже), я столкнулся с ошибкой теста ниже.
Процесс отладки:
Я объяснил проблему и текущую отладку подходов к команде и CTO и показал, как я расследую проблемы памяти:
1) Я создал запрос слияния на обновление стилей нашей посадочной страницы для того, чтобы пользователи чувствовали желание.
2) сообщение GitHub на моем PR: «Все проверки не удалось»
3) нажал на кнопку «Детали»
4) «Тест и публикация тестового покрытия», — сказал, что у меня есть утечка памяти и указала, какой файл имел проблему.
5) Я думал, что, возможно, увеличение размера узла может помочь Но это не так. Когда я пробежал его на месте, он также выбежал из памяти. Это не казалось никакой конкретной проблемой CI.
6) Я начал промежуточный тест на локально, и у них также была проблема утечки памяти.
7) После статьи я приложил Chrome Memory Инструмент (отладки Utils) к шуму. Я взял 1 снимкость памяти и по сравнению с моим локальным компьютером (VS Code). Вопрос не был связан с запросом слияния, который я сделал.
8) Я провел все тесты в последовательности, что помогает при обнаружении утечек памяти. Он сказал, что шутка занимает больше памяти со временем.
9) Я решил удалить тестовый файл, который вызывал утечку памяти. Поскольку мы используем контроль источника (GitHub), было бы легко вернуться назад, если это не вызывает проблему.
10) Я начал на исправке, и проблема была решена. Я объединил свою функцию филиала на главную ветку, и мои товарищи по команде смогут сделать Git Pull и исправить свою проблему утечки памяти.
Образец кода
Обновлена файл RenderPinnedCity.js из «Пункт» на «Данные», чтобы сделать код более актуальным для нашего проекта. «Пункт» принадлежит другому проекту под названием «торговый рынок».
Const RenderPinnedCity = ({SaveEncity, Handleremovecity}) = > {
return (
<>
{savedcitys.map (data => (
<ключ div = {
$ {data.city.city} — $ {data.city.citate} }>
< Div>
Стиль = {{
padding: '.25rem 5 Вт,
Дисплей: «Flex»,
ОправданиеContent: «Место между»,
Выравнивания: «Центр»,
BackgroundColor: «Ghostwhite»,
}}
>
<Стиль страниц = {{marginleft: '-1.5rem'}}>
<Стиль H1 = {{fontsize: '1.5Rem'}}>
стиль = {{
Marginright: '.5rem',
Цвет: 'RGB (24, 144, 255)',
}}
/>
Отгруженные особенности:
Прямо сейчас вы можете ввести специально город, государственные инициалы EX. Нью-Йорк, Нью-Йорк или Нью-Йорк (любые строчные буквы, заглавные или заглавные буквы) в панели поиска.
Текущая температура, пригодность к пригодности, бикабажироваемость, шибебилика, средняя цена на аренду, преступность, индекс качества воздуха, разнообразие, население и оценки прогулки на страницу поиска.
Какие будущие функции могут выглядеть как:
Пользователи смогут увидеть закрепленный город.
Штаты будут иметь более современный дизайн.
Какие технические проблемы Я предвидел
Там могут возникнуть некоторые трудности с вытягиванием данных с конечной точки API возможностей работы из команды DS, поскольку его объект JSON дольше, чем другие конечные точки. Сначала потяните статические данные из позиции (I.E. Developer), а затем попытайтесь пошаговать динамические данные.
Некоторые из обратной связи, которую я получил от сверстников и Как вы улучшились
Не волнуйтесь в начале, чтобы исправить ошибки испытаний. Сохраняйте спокойствие, Google, прочитайте переполнение стека и продолжайте исправлять ошибки один за другим.
Как этот проект пушисты мои карьерные цели
Это помогло мне понять, как работать с проектом Brown-Field и не в состоянии задавать вопросы разработчикам, которые запрограммированы, что иногда может быть сложно.
Я хорошо работаю с межфункциональными командами, и опыт подготовил меня сделать это еще лучше в реальной работе.
Cityspire Demo: https://drive.google.com/file/d/1yoe41sacsfnpliqztapxw8w-eubm7f5n/view.
Оригинал: «https://dev.to/catherinesjkim/how-to-debug-jest-unit-test-errors-without-pulling-your-hairs-4mog»