我的用例如下:我有一个用Node编写的Web应用程序,我已经用Java和Selenium完成了一组功能测试。我使用新的声明性管道语法在Jenkins中配置了一个作业。
以下是Jenkinsfile的内容:
#!groovy
pipeline {
agent any
stages {
stage('Test') {
steps {
nodejs(nodeJSInstallationName: 'node:8.2.0') {
sh 'echo $PATH'
sh 'npm -v'
sh 'node -v'
dir('src/webapp') {
sh 'npm install'
sh 'nohup npm start &> todomvc.out &'
}
sh './gradlew clean test'
}
}
}
stage('Clean up') {
steps {
deleteDir()
}
}
}
}
正如您所看到的,首先我使用npm start启动webapp并将其发送到后台(为了继续下一步,即实际测试)。
然而,当测试运行时,webapp不可用,使它们失败。
我尝试过更换:
sh 'nohup npm start &> todomvc.out &'
使用:
npm start
当我进入端口时,我已经指定了webapp的实例。但是,这阻碍了接下来的步骤。
我想要的是启动一个webapp实例,然后使用./gradlew clean test
对其进行测试。