我是詹金斯的新手。我有一个小的Node .JS服务器,测试用例是用Mocha编写的(集成测试用例,而不是单元测试用例)。我正在尝试使用Jenkins为此创建CI管道。我的Jenkins文件如下所示:
#!/usr/bin/env groovy
pipeline {
agent {
docker {
image 'node'
args '-u root'
}
}
stages {
stage('Build') {
steps {
echo 'Installing Dependencies...'
sh 'npm install'
}
}
stage('Run') {
steps {
echo 'Starting application...'
sh 'npm start'
}
}
stage('Test') {
steps {
echo 'Testing...'
sh 'npm test'
}
}
}
}
在运行阶段,使用命令node server.js启动服务器。一旦服务器启动,我希望对该服务器执行测试用例。但我注意到,Jenkins从未执行Test阶段,因为服务器仍然启动(这是我想要的),并且不会退出它。 如何启动服务器并对该服务器运行测试阶段?
答案 0 :(得分:1)
您应该在运行服务器之前运行测试。测试不应该依赖于正在运行的服务器。测试应该需要任何所需的测试,然后你应该运行服务器。
答案 1 :(得分:-1)
我通过创建单独的构建作业然后将它们链接在一起来解决这个问题。在运行阶段,我使用“cd”命令将目录更改为build文件夹并启动服务器。在测试阶段,我也这样做,但是,在运行阶段启动的服务器上执行测试用例。
感谢大家的意见。