我想要做的是通过 Jenkins 构建运行我的守夜人测试。
但是,我在运行测试时遇到了一些问题(在 Jenkins 构建中)。
首先,使用以下 Jenkinsfile(我认为这种情况下的代理是有效的);
#!/usr/bin/env groovy
switch (env.ENVIRONMENT_NAME) {
case 'dev':
break
case 'staging':
break
case 'production':
break
default:
// Unknown environment so - for now - stop the build
echo "Failing build, invalid ENVIRONMENT_NAME: ${env.ENVIRONMENT_NAME}"
currentBuild.result = 'FAILURE'
return
}
pipeline {
agent {
label 'browserstack'
}
stages {
stage('Install npm packages') {
steps {
script {
dir('Tests/Functional/') {
sh 'npm install'
}
}
}
}
stage('Running the tests...') {
steps {
script {
dir('Tests/Functional/') {
sh "npm run test:staging -- --tag carReviews"
}
}
}
}
}
}
我在 Jenkins 构建中遇到以下错误;
<块引用>[0;36m[汽车评论/PAR 4538] 测试套件[0m [0;35m========================================[0m
运行:[0;32m导航到哪个车段[0m
[1;31mError 从 selenium 服务器检索新会话[0m
[0;31m连接被拒绝!硒服务器启动了吗? [0米[0;90米{
错误:连接 ECONNREFUSED 127.0.0.1:4444
在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14) errno: 'ECONNREFUSED', code: 'ECONNREFUSED', syscall: 'connect',
地址:'127.0.0.1',端口:4444 }[0m
然后如果我将 Jenkinsfile 编辑为以下内容;
stage('Running the tests...') {
steps {
script {
dir('Tests/Functional/node_modules/selenium-server-standalone-jar/jar') {
sh "java -jar selenium-server-standalone-3.141.59.jar"
}
dir('Tests/Functional')
sh "npm run test:staging -- --tag carReviews"
}
}
}
}
在运行测试之前启动 Selenium 服务器后,构建似乎“挂起”
<块引用>运行 /home/jenkins/workspace/Specialist/Parkers/Tests/temporary.stg.selenium-acceptance-testing/Tests/Functional/node_modules/selenium-server-standalone-jar/jar [管道] { [管道] sh
首先,我认为我需要 2 个命令 shell 来运行这些测试是否正确,一个用于启动 selenium-standalone-server-jar,另一个用于然后运行测试?
如果是这样,我还尝试在第一个 shell 的末尾添加一个 &
,但这并没有打开第二个 shell。
其次,我是否甚至需要“手动”启动 selenium-server-standalone-jar 模块,因为我认为这会在我在本地运行测试时在夜间设置中自动启动(并且工作正常)。
任何帮助将不胜感激。谢谢。