无法为Salesforce运行闪电测试服务(LTS)

时间:2019-05-22 21:01:53

标签: salesforce lts

现在,与Teamcity一起使用SFDX自动化Salesforce开发已有一段时间。 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作为docker容器运行。但这是行不通的。

尝试的链接: 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

请帮助,我几乎尝试了所有事情。

2 个答案:

答案 0 :(得分:0)

您确实需要在容器环境中使用Selenium及其关联的依赖项(浏览器等)。不幸的是,我不相信有任何正式的映像或依赖项列表(当然,具体的软件包名称会因发行版而异)。我可以告诉你,我已经成功地使用circleci/openjdk:latest-node-browsers图像在持续集成中执行LTS测试。

我在GitHub上有一个Salesforce CI示例的存储库,其中一个是正在进行的demo的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

答案 1 :(得分:0)

更新答案,以防有人遇到此问题... 我知道了!事实证明,我在上面共享的链接毕竟对所有链接都是有帮助的:https://github.com/forcedotcom/LightningTestingService/issues/46

  1. 我必须向TeamCity添加变量SELENIUM_REMOTE_URL=http://selenium:4444/wd/hub/
  2. 并创建docker-compose.yml以启动selenium/standalone-chrome:latest
version: "3"
services:
  selenium:
    image: selenium/standalone-chrome:latest
    ports:
      - "4444:4444"