Не удается запустить службу Lightning Testing Service (LTS) для Salesforce - PullRequest
1 голос
/ 23 мая 2019

Я уже некоторое время использую 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 Следующая команда позволяет запустить пример теста Жасмин.Всякий раз, когда я пытаюсь выполнить эту команду, я получаю следующую ошибку: ERROR running force:lightning:test:run: Unable to connect to selenium.В документации не указывается сервер, требующий селена.

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

Пробовал ссылок: 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

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

1 Ответ

0 голосов
/ 23 мая 2019

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

У меня есть репозиторий примеров Salesforce CI на GitHub , один из которыхэто рабочая демоверсия 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
...