Хобрук: Ваш путь к мастерству в программировании

Не удается запустить службу тестирования Lightning (LTS) для Salesforce

Я уже некоторое время использую SFDX для автоматизации разработки Salesforce с Teamcity. SFDX не всегда предоставляет лучшие сообщения об ошибках, но документация обычно очень полезна. Ну или я так думал, пока не начал работать с LTS. Вот документация по установке LTS — https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/lightning_testing_install.htm. Я прочитал документы и следовал инструкциям, но не могу заставить LTS работать на меня. Я могу создать временную организацию и установить LTS, но не могу запустить тесты.

sfdx force:lightning:test:run -a jasmineTests.app Следующая команда позволяет запустить образец теста Jasmin. Всякий раз, когда я пытаюсь выполнить эту команду, я получаю следующую ошибку: ERROR running force:lightning:test:run: Unable to connect to selenium. В документации не указан сервер, требующий селена.

Хотя в документах ничего не говорится о селене, я попытался загрузить selenium-standalone-chrome. Я попытался запустить selenium/standalone-chrome в качестве док-контейнера. Но это не работает.

Используемые ссылки: https://github.com/forcedotcom/LightningTestingService/issues/46 https://github.com/forcedotcom/LightningTestingService/issues/46#issuecomment-457829523 https://github.com/forcedotcom/LightningTestingService/issues/46#issuecomment-347928851

Помогите пожалуйста, уже почти все перепробовал.

22.05.2019

  • Я заставил его работать! Оказывается, ссылка, которой я поделился выше, все-таки оказалась полезной... ССЫЛКА: github.com/forcedotcom/LightningTestingService/issues/ Мне также пришлось добавить переменную SELENIUM_REMOTE_URL=http://selenium:4444/wd/hub/ и создать файл docker-compose.yml для запуска selenium/standalone-chrome:latest version: "3" services: selenium: image: selenium/standalone-chrome:latest ports: - "4444:4444" 19.07.2019

Ответы:


1

Вам нужен Selenium и связанные с ним зависимости (браузеры и т. д.), доступные в вашей контейнерной среде. К сожалению, я не верю, что какие-либо официальные образы или списки зависимостей доступны (и, конечно же, конкретные имена пакетов будут различаться в зависимости от дистрибутива). Я могу сказать вам, что мне удалось успешно использовать образ circleci/openjdk:latest-node-browsers для выполнения LTS-тестов в непрерывной интеграции.

У меня есть репозиторий примеров Salesforce CI на GitHub, один из которых является рабочим < href="https://github.com/davidmreed/circleci-sfdx-examples/blob/master/lightning-tests/config.yml" rel="nofollow noreferrer">демонстрация LTS-тестирования. В сокращенной форме это звучит так.

version: 2
jobs:
  build:
    docker:
        - image: circleci/openjdk:latest-node-browsers
    steps:
        - checkout
        - restore_cache:
            keys:
                - sfdx
        - run:
            name: Install Salesforce DX
            command: |
                if [ ! -d node_modules/sfdx-cli ]; then
                    export SFDX_AUTOUPDATE_DISABLE=true
                    export SFDX_USE_GENERIC_UNIX_KEYCHAIN=true
                    export SFDX_DOMAIN_RETRY=300
                    npm install sfdx-cli
                    node_modules/sfdx-cli/bin/run --version
                    node_modules/sfdx-cli/bin/run plugins --core
                fi
        - save_cache:
            key: sfdx
            paths: 
                - node_modules
        - run: 
            name: Create Scratch Org
            command: |
                openssl aes-256-cbc -k $KEY -in assets/server.key.enc -out assets/server.key -d -md md5
                node_modules/sfdx-cli/bin/run force:auth:jwt:grant --clientid $CONSUMERKEY --jwtkeyfile assets/server.key --username $USERNAME --setdefaultdevhubusername -a DevHub
                node_modules/sfdx-cli/bin/run force:org:create -v DevHub -s -f config/project-scratch-def.json -a scratch
        - run:
            name: Remove Server Key
            when: always
            command: |
                rm assets/server.key
        - run:
            name: Install Lightning Testing Service
            command: |
                node_modules/sfdx-cli/bin/run force:lightning:test:install -t jasmine
        - run: 
            name: Push Source
            command: |
                node_modules/sfdx-cli/bin/run force:source:push -u scratch
        - run:
            name: Run Lightning Tests
            command: | 
                mkdir ~/tests/lightning
                node_modules/sfdx-cli/bin/run force:lightning:test:run -d ~/tests/lightning -r human -a lightningTests.app -o
22.05.2019
  • Спасибо за ответ Давид. В моем предыдущем образе Docker у меня уже был драйвер Chrome. Тем не менее, я попытался создать изображение, подобное изображению из circleci/openjdk:latest-node-browsers, однако я все еще получаю сообщение об ошибке Unable to connect to selenium. Я думаю, что моя конфигурация LTS JSON настроена неправильно. Как у вас настроена конфигурация LTS? 24.05.2019
  • @ M.Firmino Вы имеете в виду драйвер .app для пакета LTS? 24.05.2019
  • Нет, я имею в виду файл конфигурации... у них есть пример в репозитории LTS. https://github.com/forcedotcom/LightningTestingService/blob/master/config/lts-config.json...Я думал, что это необходимо для выполнения команды. Я использую те же настройки, что и этот файл, и получаю сообщение об ошибке -- ERROR running force:lightning:test:run: v1.indexOf is not a function 24.05.2019
  • @ M.Firmino У меня его вообще нет - возможно, он был добавлен после того, как я перестал много работать с LTS. Мне жаль, что это не было очень полезно! Когда у меня будет минутка, я снова попробую свои сборки и посмотрю, работают ли они. 24.05.2019

  • 2

    Обновление ответа на случай, если кто-нибудь когда-нибудь столкнется с этой проблемой... У меня все получилось! Оказывается, ссылка, которой я поделился выше, в конце концов была полезна ССЫЛКА: https://github.com/forcedotcom/LightningTestingService/issues/46

    1. Мне пришлось добавить переменную SELENIUM_REMOTE_URL=http://selenium:4444/wd/hub/ в TeamCity
    2. И создайте docker-compose.yml для запуска selenium/standalone-chrome:latest
    version: "3"
    services:
      selenium:
        image: selenium/standalone-chrome:latest
        ports:
          - "4444:4444"
    
    27.08.2020
    Новые материалы

    Обнаружение маски или без маски с YOLO😷
    Это руководство по созданию пользовательской модели обнаружения объектов для обнаружения людей, носящих или не носящих маски в общественных местах, созданной с использованием YOLO v3. Модель..

    Управление приборами в чистом PHP
    Этот пост дополняет эти: E2e тестирование Работа с несколькими средами . Мы разработали это решение для базы данных MariaDB, оно может отличаться, если вы используете другую базу..

    Неделя 1 — Кентерберийские рельсы.
    Неделя 1 — Кентерберийские рельсы. So. Мы все еще живы, все еще усердно работаем и еще не пассивно-агрессивно рассылаем друг другу сообщения «за мое последнее сообщение в Slack…», поэтому, на..

    Цена завтрашнего дня  — Джефф Бут
    Технологический прогресс в наши дни происходит с молниеносной скоростью, и мы не в состоянии это понять. Джефф в основном говорит о влиянии технологий на экономику по всему миру. Он твердо верит..

    Данные: суперсила современного бизнеса
    В цифровой среде данные превратились из простого побочного продукта бизнес-операций в центральный актив, стимулирующий рост и инновации. Крейг Манди, бывший главный директор по стратегии..

    Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
    Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

    AST для разработчиков JavaScript
    TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..