Lambda 测试不适用于 azure devops 管道
Lambda tests not working on azure devops pipeline
我在 运行 来自 Azure DevOps 管道的 lambda 测试中遇到一个问题。
我在 testcafe 中编写了测试,它们在本地工作,成功测试用例的百分比为 100%。
我尝试在本地使用不同的浏览器,例如在 cmd 中为 Microsoft Edge 指定命令:
npx testcafe "lambdatest:MicrosoftEdge@91.0:Windows 10"
"e2e-testcafe/regression" -c 1 -q -e --browser-init-timeout 180000.
效果很好。
当我想在 azure 管道上包含任务时,隧道已成功启动,但出现一些关于未处理的承诺拒绝的奇怪错误。
pool:
name: Azure Pipelines
steps:
- task: NodeTool@0
displayName: 'Use Node 16.15.0'
inputs:
versionSpec: 16.15.0
- script: 'npm install'
workingDirectory: 'test-main'
displayName: 'Install Testcafe'
- task: Npm@1
displayName: 'npm custom'
inputs:
command: custom
workingDir: 'test-main'
verbose: false
customCommand: 'install node-lambda -g'
- task: Npm@1
displayName: 'npm custom testcafe'
inputs:
command: custom
workingDir: 'test-main'
verbose: false
customCommand: 'install testcafe -g'
- script: 'npx testcafe "lambdatest:MicrosoftEdge@91.0:Windows 10" "e2e-testcafe/regression" -c 1 -q -e --browser-init-timeout 180000'
workingDirectory: 'test-main/src'
displayName: 'Run Lambda Edge'
env:
LT_USERNAME: //my username
LT_ACCESS_KEY: $(LT_ACCESS_KEY)
LT_CONSOLE: true
LT_NETWORK: true
LT_VIDEO: true
LT_SCREENSHOT: true
我得到的输出是一些奇怪的错误,权限没有得到正确处理,所有测试都失败了 6/6,这是我得到的一些响应:
Successfully auth
× Check application links
-
- Error in fixture.beforeEach hook -
Unhandled promise rejection:
Error: Cannot pipe, not readable
at new NodeError (node:internal/errors:372:5)
at ServerResponse.pipe (node:_http_outgoing:991:22)
at Object.respondOnWebSocket
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\websocket.js:39:9)
at Array.decideOnProcessingStrategy
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\stages.js:75:25)
at Object.run
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\index.js:19:34)
at runMicrotasks ()
at processTicksAndRejections
(node:internal/process/task_queues:96:5)
Browser: Microsoft Edge 91.0.864.41 / Windows 10 (
× Check navigation rules
-
- Error in fixture.beforeEach hook -
Unhandled promise rejection:
Error: Cannot pipe, not readable
at new NodeError (node:internal/errors:372:5)
at ServerResponse.pipe (node:_http_outgoing:991:22)
at Object.respondOnWebSocket
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\websocket.js:39:9)
at Array.decideOnProcessingStrategy
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\stages.js:75:25)
at Object.run
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\index.js:19:34)
at runMicrotasks ()
at processTicksAndRejections
(node:internal/process/task_queues:96:5)
Browser: Microsoft Edge 91.0.864.41 / Windows 10 (
你知道这是怎么回事吗?我也尝试过使用简单的 e2e 任务的管道,它们按预期工作。
感谢任何帮助。
问题似乎出现在 Node.js 的 'http' 模块中。请分享一个可以重现问题的示例,以便我检查此假设是否正确。如果你能做出这样的例子,请在 TestCafe GitHub 存储库中创建一个问题并将你的例子附加到它。
我遇到了类似的问题。 testcafe lambda 运行 在本地成功,但在 Azure DevOps 中由于一些管道错误而失败。
如果您有除 LT_USERNAME 和 LT_ACCESS_KEY 之外的任何其他 lambda 测试变量(如 LT_NETWORK, LT_SNAPSHOT, 等等), 然后尝试删除那些变量.
删除那些额外的环境变量对我的情况有所帮助。希望对你也有帮助!
我知道这个答案没有提供根本原因,但它应该很可能解决您面临的问题。
我在 运行 来自 Azure DevOps 管道的 lambda 测试中遇到一个问题。
我在 testcafe 中编写了测试,它们在本地工作,成功测试用例的百分比为 100%。
我尝试在本地使用不同的浏览器,例如在 cmd 中为 Microsoft Edge 指定命令:
npx testcafe "lambdatest:MicrosoftEdge@91.0:Windows 10" "e2e-testcafe/regression" -c 1 -q -e --browser-init-timeout 180000.
效果很好。
当我想在 azure 管道上包含任务时,隧道已成功启动,但出现一些关于未处理的承诺拒绝的奇怪错误。
pool:
name: Azure Pipelines
steps:
- task: NodeTool@0
displayName: 'Use Node 16.15.0'
inputs:
versionSpec: 16.15.0
- script: 'npm install'
workingDirectory: 'test-main'
displayName: 'Install Testcafe'
- task: Npm@1
displayName: 'npm custom'
inputs:
command: custom
workingDir: 'test-main'
verbose: false
customCommand: 'install node-lambda -g'
- task: Npm@1
displayName: 'npm custom testcafe'
inputs:
command: custom
workingDir: 'test-main'
verbose: false
customCommand: 'install testcafe -g'
- script: 'npx testcafe "lambdatest:MicrosoftEdge@91.0:Windows 10" "e2e-testcafe/regression" -c 1 -q -e --browser-init-timeout 180000'
workingDirectory: 'test-main/src'
displayName: 'Run Lambda Edge'
env:
LT_USERNAME: //my username
LT_ACCESS_KEY: $(LT_ACCESS_KEY)
LT_CONSOLE: true
LT_NETWORK: true
LT_VIDEO: true
LT_SCREENSHOT: true
我得到的输出是一些奇怪的错误,权限没有得到正确处理,所有测试都失败了 6/6,这是我得到的一些响应:
Successfully auth
× Check application links
- Error in fixture.beforeEach hook - Unhandled promise rejection:
Error: Cannot pipe, not readable at new NodeError (node:internal/errors:372:5) at ServerResponse.pipe (node:_http_outgoing:991:22) at Object.respondOnWebSocket
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\websocket.js:39:9) at Array.decideOnProcessingStrategy
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\stages.js:75:25) at Object.run
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\index.js:19:34) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5)
Browser: Microsoft Edge 91.0.864.41 / Windows 10 ( × Check navigation rules
- Error in fixture.beforeEach hook - Unhandled promise rejection:
Error: Cannot pipe, not readable at new NodeError (node:internal/errors:372:5) at ServerResponse.pipe (node:_http_outgoing:991:22) at Object.respondOnWebSocket
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\websocket.js:39:9) at Array.decideOnProcessingStrategy
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\stages.js:75:25) at Object.run
(D:\a\s\test-main\node_modules\testcafe-hammerhead\lib\request-pipeline\index.js:19:34) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5)
Browser: Microsoft Edge 91.0.864.41 / Windows 10 (
你知道这是怎么回事吗?我也尝试过使用简单的 e2e 任务的管道,它们按预期工作。
感谢任何帮助。
问题似乎出现在 Node.js 的 'http' 模块中。请分享一个可以重现问题的示例,以便我检查此假设是否正确。如果你能做出这样的例子,请在 TestCafe GitHub 存储库中创建一个问题并将你的例子附加到它。
我遇到了类似的问题。 testcafe lambda 运行 在本地成功,但在 Azure DevOps 中由于一些管道错误而失败。
如果您有除 LT_USERNAME 和 LT_ACCESS_KEY 之外的任何其他 lambda 测试变量(如 LT_NETWORK, LT_SNAPSHOT, 等等), 然后尝试删除那些变量.
删除那些额外的环境变量对我的情况有所帮助。希望对你也有帮助!
我知道这个答案没有提供根本原因,但它应该很可能解决您面临的问题。