Nano Hash - криптовалюты, майнинг, программирование

Тестирование карты mapbox-gl не выполняется, потому что нет WebGL

Я использую mapbox-gl, в частности mapbox-gl-leaflet, в React для создания карты:

import Leaflet from 'leaflet'
import 'mapbox-gl/dist/mapbox-gl.css'
import {} from 'mapbox-gl-leaflet'
import 'leaflet/dist/leaflet.css'

const Map = () => {
    const map = useRef(null)

    useEffect(() => {

        Leaflet.mapboxGL({
            accessToken: token,
            style: 'mapbox://styles/mapbox/outdoors-v11',
        }).addTo(map.current)
    })
}

В тесте уже происходит сбой, когда я пытаюсь смонтировать <Map /> с этой ошибкой:

Не удалось инициализировать WebGL.

Есть также два других сообщения об ошибке:

Ошибка: Не реализовано: HTMLCanvasElement.prototype.getContext (без установки пакета canvas npm)...

На этой странице отсутствуют объявления CSS для Mapbox GL JS, что может привести к неправильному отображению карты. Убедитесь, что ваша страница включает mapbox-gl.css, как описано в https://www.mapbox.com/mapbox-gl-js/api/.

Но, как видите, я импортирую файл CSS. Я думаю, проблема в том, что в Jest нет WebGL. Я также установил пакет canvas npm, но это не помогло. Можно ли как-то имитировать WebGL? Я уже пробовал это с помощью jest- макет холста. Импортирую его в тестовый файл: import {} from 'jest-canvas-mock'. Но я все еще получаю ошибку Error: Not implemented: HTMLCanvasElement.prototype.getContext ....


  • Использовать кукловод? 11.08.2020
  • Это мапбокс и/или листовка, над которыми нужно издеваться. Jest использует поддельный DOM, который не может и не будет вести себя как настоящий и развалится, как только вы сделаете что-то сложное. Следует издеваться над сторонними библиотеками, которые сильно зависят от того, как работают настоящие браузеры. 11.08.2020
  • Ошибка: Не реализовано: HTMLCanvasElement.prototype.getContext ... Эту ошибку я решил, добавив window.HTMLCanvasElement.prototype.getContext = () => {} перед монтированием компонента. 24.09.2020
  • В настоящее время у меня такая же ошибка WebGL. 24.09.2020

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..