无法 运行 Salesforce 闪电测试服务 (LTS)
Can't run Lightning Testing Service (LTS) for 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 的内容,但我已经尝试下载 selenium-standalone-chrome。我尝试将 运行ning 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
请帮忙,我几乎什么都试过了。
您的容器环境中确实需要可用的 Selenium 及其相关依赖项(浏览器等)。不幸的是,我认为没有任何官方图像或依赖列表可用(当然,具体的包名称会因发行版而异)。我可以告诉你,我已经成功地使用 circleci/openjdk:latest-node-browsers
图像在持续集成中执行 LTS 测试。
我有一个关于 GitHub, one of which is a working demo LTS 测试的 Salesforce CI 示例的存储库。缩写形式是这样的。
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
正在更新答案以防有人遇到此问题...
我得到它的工作!原来我上面分享的link毕竟有用LINK:https://github.com/forcedotcom/LightningTestingService/issues/46
- 我必须向 TeamCity
添加一个变量 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"
我使用 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 的内容,但我已经尝试下载 selenium-standalone-chrome。我尝试将 运行ning 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
请帮忙,我几乎什么都试过了。
您的容器环境中确实需要可用的 Selenium 及其相关依赖项(浏览器等)。不幸的是,我认为没有任何官方图像或依赖列表可用(当然,具体的包名称会因发行版而异)。我可以告诉你,我已经成功地使用 circleci/openjdk:latest-node-browsers
图像在持续集成中执行 LTS 测试。
我有一个关于 GitHub, one of which is a working demo LTS 测试的 Salesforce CI 示例的存储库。缩写形式是这样的。
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
正在更新答案以防有人遇到此问题... 我得到它的工作!原来我上面分享的link毕竟有用LINK:https://github.com/forcedotcom/LightningTestingService/issues/46
- 我必须向 TeamCity 添加一个变量
- 并创建一个docker-compose.yml 来启动
selenium/standalone-chrome:latest
SELENIUM_REMOTE_URL=http://selenium:4444/wd/hub/
version: "3"
services:
selenium:
image: selenium/standalone-chrome:latest
ports:
- "4444:4444"